实体框架和 MongoDb

有没有可能实体框架支持 MongoDb 数据库? 也许有人会写一个 EF MongoDb 提供程序?

80790 次浏览

简短的回答——不,这当然是可能的,但不合理。

MongoDB 是文档数据库,不支持集合之间的任何物理关系。 EF 非常适合于 SQL、 MySQL 等关系数据库。MongoDB 处理嵌入式文档的速度更快。所以这只是两种不同的方法。

查看 MongoDB C # 库的最新版本... . 支持 LINQ!

Https://mongodb.github.io/mongo-csharp-driver/1.11/linq/

我非常喜欢实体框架,所以当我第一次尝试 mongoDb 时,我创建了一个名为“ MongoDB.Dynamic”的库,它在 EF Code First 旁边有一个方法。MongoDB 在物理上没有集合之间的关系,但是您可以模拟它。Dynamic 有一个称为 Eager Loding 的特性,如果实体具有传统的结构,则可以自动配置集合和加载相关文档之间的关系。您可以尝试在 MongoDB.Dynamic上阅读一些文档

在线时,RSSBus 看起来已经创建了一个 MongoDBProviderServices dll,可以与实体框架6一起使用。

Http://cdn.rssbus.com/help/dg1/ado/pg_ef6.htm

该链接包括一个关于如何实现它的教程。

我不建议使用使用 LINQ 的 MongoDb 提供程序的旧版本。最好和最稳定的 C # MongoDb 驱动程序是官方的 MongoDb 驱动程序2.0 for C # ,它使用 Builders 机制。

LINQ 遗留驱动程序有许多限制,大容量插入机制不方便且速度缓慢。

CData 使用 Entity Framework 6.0开发了一个用于对 MongoDb 执行 CRUD 操作的库。

有关图书馆的详细资料,请参阅

Https://www.cdata.com/kb/tech/mongodb-ado-codefirst.rst

我不确定,但我认为 Microsoft.EntityFrameworkCore.Cosmos数据库提供商将为您工作。