我一直在使用 EF 7 Core for SQL Server,最近又添加了 EF 7 Core for Cosmos DB。
但是,安装 EF Core Cosmos 提供程序后,我收到此错误。
错误 CS0121 以下方法或属性之间的调用不明确:'Microsoft.EntityFrameworkCore.RelationalQueryableExtensions.FromSqlRaw(Microsoft.EntityFrameworkCore.DbSet, string, params object[])' 和 'Microsoft.EntityFrameworkCore.CosmosQueryableExtensions.FromSqlRaw(Microsoft.EntityFrameworkCore.DbSet, string, params object[])'
两种扩展方法都使用相同的命名空间 Microsoft.EntityFrameworkCore,因此,我无法通过指定命名空间来解决此问题。
除了使用命名空间之外,还有其他方法可以选择使用哪种扩展方法吗?
我刚刚找到了一个解决方法。以前,我将它们用作这样的扩展方法。
context.Set<ABC>().FromSqlRaw("select a from b");
但我意识到我可以像常规方法一样使用扩展方法。
RelationalQueryableExtensions.FromSqlRaw(context.Set<ABC>(), "select a from b")
CosmosQueryableExtensions.FromSqlRaw(context.Set<ABC>(), "select a from b")
这样,我就可以选择使用哪种扩展方法,即使它们具有相同的命名空间。
感谢您的评论 Cid。