如何在 .Net Core 6.0 中结合 CosmosDB、Entity Framework 和 OData?
Posted
技术标签:
【中文标题】如何在 .Net Core 6.0 中结合 CosmosDB、Entity Framework 和 OData?【英文标题】:How to combine CosmosDB, Entity Framework and OData in .Net Core 6.0? 【发布时间】:2022-01-18 03:42:31 【问题描述】:我有一个在 .Net core 3.1 场景中使用实体框架、OData 和 SqlServer 的应用程序,它运行良好。最终我想在 Azure 上使用 Cosmos DB 来代替 SQL Server。
虽然我可以让应用程序连接到 Cosmos,但应用程序无法调用 3.1 兼容库不支持的 FromSqlRaw。
我已尝试将项目完全升级到 .Net core 6.0,虽然编译没有错误,但在应用程序启动时使用名为 MediatR(用于注入)的包加载程序集时遇到问题。
我的问题是双重的:Cosmos DB 的 .Net 6.0 兼容库是否正确处理 FromSqlRaw 和/或如果没有,是否有解决该问题的方法。
【问题讨论】:
【参考方案1】:如果您询问是否可以使用 Cosmos DB 提供程序将 T-SQL 或 ANSI-SQL 发送到 EF 中的FromRawSQL
,答案是否定的。
Cosmos DB 是一个 NoSQL 数据库。 FromRawSQL 旨在允许用户发送 Cosmos DB 自己的 SQL 方言,并且在提供者可能缺乏 Cosmos DB 本身公开的特定功能的情况下,作为一种使 Cosmos 提供程序具有更高兼容性的方式。
【讨论】:
以上是关于如何在 .Net Core 6.0 中结合 CosmosDB、Entity Framework 和 OData?的主要内容,如果未能解决你的问题,请参考以下文章
在 ASP.NET Core 6.0 中使用 Serilog