BlueshiftSoftware / EntityFrameworkCore

NoSQL providers for EntityFramework Core
Other
281 stars 57 forks source link

What is the status of tis project? #45

Closed ansarizafar closed 4 years ago

ansarizafar commented 4 years ago

What is the status of tis project? Is this project dead?

crhairr commented 4 years ago

Honestly, I haven't decided yet. Personally, I have come to prefer the Repository pattern for working with NoSQL databases rather than attempting to use EF Core's RDBMS-centric design. Despite this, I have tried to maintain this project. However, I'm doing this alone, since there seems to be a lack of general interest in submitting code to this ostensibly open-source project.

Every time the EF Core team drops a new release that fixes some bug I've been waiting on (such as their poor support for complex types), they rewrite a significant portion of the underlying system. In turn, I have to rewrite most of this adapter in order for it to continue working. This requires going through tens of thousands of lines of code and an obscene number of pull requests in the EF Core repo to figure out what new pieces I need to implement, and what old implementations I need to remove. Each one of their releases causes me to have to design a completely new set of workarounds for whatever simple concept they were supposed to implement but chose to do so from a SQL-only perspective. And then I have to figure out which workarounds I've implemented previously that are breaking something and need to be removed.

As I have mentioned, there are better solutions than using EF Core for NoSQL databases. I recommend the Repository pattern with the official MongoDB C# driver. It's far more flexible, and if you design your data model correctly will be significantly more performant than trying to shoehorn a relational object mapper onto a non-relational database.

Maintaining this project on my own is a significant effort that requires a lot of time. I would rather spend that time actually working on the projects for which I created this adapter in the first place. If members of the community want to contribute code, I would consider re-prioritizing this project. For now, it's on hold until I decide what to do with it.