Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Entity framework 实体框架与MongoDb_Entity Framework_Orm_Mongodb - Fatal编程技术网

Entity framework 实体框架与MongoDb

Entity framework 实体框架与MongoDb,entity-framework,orm,mongodb,Entity Framework,Orm,Mongodb,实体框架是否可能支持MongoDb数据库?也许有人会编写EF MongoDb提供程序?简短回答-不,这肯定是可能的,但不合理 MongoDB是文档数据库,不支持集合之间的任何物理关系。 EF非常适合于SQL、MySQL等关系数据库。MongoDB使用嵌入式文档的速度更快。所以这只是两种不同的方法 查看最新版本的MongoDB C#库。。。。支持LINQ 我非常喜欢实体框架,所以当我第一次尝试mongoDb时,我创建了一个名为“mongoDb.Dynamic”的库,该库的方法接近于EF代码优先。M

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

简短回答-不,这肯定是可能的,但不合理

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

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


我非常喜欢实体框架,所以当我第一次尝试mongoDb时,我创建了一个名为“mongoDb.Dynamic”的库,该库的方法接近于EF代码优先。MongoDB在集合之间没有物理关系,但您可以模拟它。Dynamic有一个称为“急切加载”的功能,如果实体具有约定的结构,您可以配置集合之间的关系并自动加载相关文档。您可以尝试在

上阅读一些文档,通过联机查看,RSSBus似乎已经创建了一个可以与entity framework 6一起使用的MongoDBProviderServices dll


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

我不建议使用使用使用LINQ的旧版本MongoDb provider。最好且稳定的C#MongoDb驱动程序是官方的MongoDb驱动程序2.0 for C#,它使用了构建器机制


LINQ旧版驱动程序有许多限制,批量插入机制不方便且速度慢。

CData开发了一个库,用于使用Entity Framework 6.0使用MongoDb执行CRUD操作。但这不是免费的

有关该库的详细信息,请参阅


支持Linq是否意味着它也支持EF?@mehul9595这是一个好问题,不,这并不意味着,所以这个答案实际上根本不是对所问问题的答案。这个链接是活的。Linq会有用吗,因为mongodb api应该返回json数据?链接是死的btwHi DotNetGoose-你的答案看起来很有用,但是有点困惑;你能添加一些链接来支持你所说的吗,例如C版MongoDB驱动程序的官方文档?@VinceBowdren嗨,我是根据自己使用新旧MongoDB驱动程序的经验得出这个结论的。我不记得细节了,那是一年前的事了,但是旧驱动程序的性能变慢了,批量操作的机制非常不舒服,还有一些bug和不明显的行为。我知道这是一个旧的答案,但是从版本2.1(2015年10月)起,LINQ对官方驱动程序的支持已经被重写,因此,如果您现在想使用LINQ,这是推荐的方法。看到答案了吗?!为什么不呢?实体框架是一个ORM,一个复杂的复合对象与一个文档比几个FK喜欢的几个表中的一堆行更相似。此外,EF到MongoDB可以依靠手动引用来实现关系。因此,将EF提供程序实现到文档数据库应该比实现RDBMS更容易。如今,EF核心不绑定到关系数据库,也支持文档数据库。例如,Azure Cosmos DB document database有一个提供程序。EF是一个ORM,它将应用程序轮胎中的对象映射到数据轮胎中的关系模型。在mongo中,在mongo驱动程序的帮助下,对象可以直接传递给数据轮胎,因此不需要ORM。在mongodb或develop and Provider中使用EF是过分的。