如何在 .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

在 ASP.NET Core 6.0 中获取参数错误

基于ASP.NET Core 6.0的整洁架构,asp.net core 6.0 功能

asp.ner core 6.0路由找不到

.NET Core 6.0发送邮件

.NET Core 6.0发送邮件