提问人:jong shin 提问时间:11/16/2023 更新时间:11/16/2023 访问量:54
EF Core FromSqlRaw - 调用在以下方法之间不明确
EF Core FromSqlRaw - The call is ambigous between the following methods
问:
我一直在使用 EF 7 Core for SQL Server,最近添加了 EF 7 Core for Cosmos DB。
但是,在安装 EF Core Cosmos 提供程序后,我收到此错误。
错误 CS0121 调用在以下方法或属性之间不明确:“Microsoft.EntityFrameworkCore.RelationalQueryableExtensions.FromSqlRaw(Microsoft.EntityFrameworkCore.DbSet,字符串,参数对象[])” 和“Microsoft.EntityFrameworkCore.CosmosQueryableExtensions.FromSqlRaw(Microsoft.EntityFrameworkCore.DbSet, string, params object[])”
两种扩展方法都使用相同的命名空间 Microsoft.EntityFrameworkCore,因此,我无法通过指定命名空间来解决此问题。
除了使用命名空间之外,有没有办法选择要使用的扩展方法?
答:
0赞
jong shin
11/16/2023
#1
我刚刚找到了一个解决方法。以前,我将它们用作这样的扩展方法。
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。
评论
a.MyConflictingExtensionMethod(foo => foo.Bar());
MyNamespace.MyConflictingExtensionMethod(a, foo => foo.Bar());
RelationalQueryableExtensions
CosmosQueryableExtensions