Is it possible to use Entity Framework Core 6 with MongoDb?

Viewed 4863

Is it possible to use EF Core 6 in combination with a MongoDb? From what I'v gathered online, I could only find answers from a few years ago that say that it's still not possible, but nothing that was published recently. There is also better support for the Azure Cosmos Db which is also a NoSql database, so maybe I could use that to communicate with a MongoDb?

If it's still not possible, what other approach should I use?

2 Answers

There is no official MongoDb provider implementation for EF core at this time, I did not see any mention of MongoDb in the .net core 7 (the next version) roadmap as of now.

See: https://docs.microsoft.com/en-us/ef/core/providers/?tabs=dotnet-core-cli

I quickly googled a bit but could not find a recent version of a MongoDb provider.

Msdn docs also do not use EF core: https://docs.microsoft.com/en-us/aspnet/core/tutorials/first-mongo-app?view=aspnetcore-6.0&tabs=visual-studio

Related SO: MongoDB and Entity Framework Core 2.0

While there is no MongoDb provider for EF (to my disappointment), there is, at least, a provider for CosmosDb, Azure's fully managed NoSQL solution.

https://azure.microsoft.com/en-us/services/cosmos-db/

https://docs.microsoft.com/en-us/ef/core/providers/cosmos/?tabs=dotnet-core-cli

Once can't help but wonder if it's intentional -- but I imagine the unit-of-work pattern with transaction rollback as well as Migrations support.

In the mean time, you can consider something along the lines of the repository pattern so that your data access does not depend on your infrastructure.

I'd recommend taking a look at some of the samples and training by Ardalis (Steve Smith).

https://deviq.com/design-patterns/repository-pattern

Related