使用 Cosmos 文档数据库的最佳方式是什么?EF Core vs Cosmos SDK



Microsoft提供了两种在C#/.NET中使用cosmos dbs的方法。

可以使用实体框架 (EF( 核心,它在后台使用 cosmos SDK,并允许你将 EF 与 Cosmos 一起使用。

最后一点可以被视为积极或消极,具体取决于您是否要使用 EF 与 Dapper 或其他什么,但对于我的用例,除非有充分的理由不这样做,否则我更喜欢使用 EF。

Microsoft自己没有发表任何声明,我可以找到应该使用哪个或为什么。(我假设这是一个.NET Core项目(

EF Core目前仅适用于Cosmos DB的SQL API。因此,如果使用其他 API,则无法使用 EF Core。

此外,请查看 EF Core Azure Cosmos DB 提供程序限制的其他限制,请参阅 https://learn.microsoft.com/en-us/ef/core/providers/cosmos/limitations

我们使用了Cosmos DB SDK,它非常灵活,性能也很好。

在体验了Cosmonaut包,EF Core和SDK之后,我不得不说Ef Core专注于关系映射。女巫文档数据库 你需要专注于 Json 序列化。Ef Core 模型配置对于文档数据库交互来说感觉很麻烦且受到限制 - 您必须配置在序列化时正常工作的东西。宇航员和SDK都允许专注于序列化,这在大多数情况下是有效的。宇航员是SDK之上的一个方便的外观 - 但目前看起来已经死了,所以我推荐SDK。

最新更新