实体框架和 MongoDb

问题描述 投票:0回答:8

实体框架有可能支持MongoDb数据库吗?也许有人会写一个EF MongoDb Provider?

entity-framework orm mongodb
8个回答
62
投票

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

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


47
投票

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

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


8
投票

我是实体框架的忠实粉丝,因此当我第一次尝试 mongoDb 时,我创建了一个名为“MongoDB.Dynamic”的库,它具有类似于 EF Code First 的方法。 MongoDB 在物理上集合之间没有关系,但您可以模拟它。 MongoDB.Dynamic 有一个称为“预加载”的功能,如果实体具有约定的结构,您可以配置集合之间的关系并自动加载相关文档。您可以尝试阅读 MongoDB.Dynamic

的一些文档

2
投票

在网上查看,RSSBus 似乎创建了一个可以与实体框架 6 一起使用的 MongoDBProviderServices dll。

http://cdn.rssbus.com/help/DG1/ado/pg_ef6.htm

该链接包含有关如何实现它的教程。


2
投票

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

图书馆的详细信息可以在

找到

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


0
投票

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

LINQ 遗留驱动程序有很多限制,批量插入机制不方便且缓慢。


0
投票

MongoDB 现已发布官方支持的 EF Core 提供程序(目前处于预览版)。

Github 存储库:https://github.com/mongodb/mongo-efcore-provider

NuGet:https://www.nuget.org/packages/MongoDB.EntityFrameworkCore

问题/错误跟踪器:https://jira.mongodb.org/projects/EF/issues/EF-63


-2
投票

我不确定,但我认为

Microsoft.EntityFrameworkCore.Cosmos
数据库提供商将为您工作。

© www.soinside.com 2019 - 2024. All rights reserved.