![](/img/trans.png)
[英]Xamarin - The call is ambiguous between the following methods or properties
[英]The call is ambiguous between the following methods or properties [ Entity Framework Core ] [ OnModelCreating ]
我在我的dbcontext
class 中使用 EF Core,我已经覆盖了onModelCreating
方法以将 class 中的一个属性配置为在 Z9778840A0100CB30C982876741B0B52 服务器中自动递增。
这是我的DbContext
class:
public class AppDbContext:IdentityDbContext<AppUser>
{
public AppDbContext(DbContextOptions options) : base(options)
{
}
public AppDbContext()
{
}
protected override void OnModelCreating(ModelBuilder builder)
{
base.OnModelCreating(builder);
builder.Entity<Service>()
.Property(service => service.ID)
.UseIdentityColumn(1, 1);
}
public virtual DbSet<AppUser> AppUsers { get; set; }
public virtual DbSet<Service> Services { get; set; }
}
如果您注意到我的DbContext
class 是从IdentityDbContext
继承的,因为我使用了身份。
问题:我收到此错误:
CS0121
以下方法或属性之间的调用不明确:“Microsoft.EntityFrameworkCore.OraclePropertyBuilderExtensions.UseIdentityColumn(Microsoft.EntityFrameworkCore.Metadata.Builders.PropertyBuilder, int, int)”和“Microsoft.EntityFrameworkCore.SqlServerPropertyBuilderExtensions.UseIdentityColumn(Microsoft.EntityFrameworkCore.Metadata .Builders.PropertyBuilder, int, int)'
附加信息
我在我的解决方案中引用了另一个项目,这个项目将扮演存储库的角色,他准备与 SQL 服务器、Oracle 和 MySQL 合作。
我所依赖的项目是我自己的项目,它是开源的,即存储库链接
请帮助解决这个问题?
我想你不能只删除两个有问题的使用之一。 由于这些方法是扩展方法(因此 static 方法),您可以将它们用作 static 方法:
Microsoft.EntityFrameworkCore.OraclePropertyBuilderExtensions.UseIdentityColumn(builder.Entity<Service>().Property(service => service.ID), 1, 1);
或使用 static 导入:
using static Microsoft.EntityFrameworkCore.OraclePropertyBuilderExtensions;
然后
UseIdentityColumn(builder.Entity<Service>().Property(service => service.ID), 1, 1)
我知道它不如流畅的书写方式漂亮,但我认为如果你需要所有的使用方式,我认为没有其他选择。
(我假设您想保留 Oracle 一个)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.