方法 'Entity' 没有重载在 Entity framework 中接受 1 个参数

No overload for method 'Entity' takes 1 arguments in Entity framework

在我的 DBContext 中,我重写了 OnModelCreating 方法。

相同的代码在 .Net Core(通过使用 ModelBuilder)中工作起来就像一个魅力,但

在 .NET Framework 4 上无法编译。

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();

        modelBuilder.Entity<User>(entity =>
        {
            entity.Property(e => e.CreatedBy)
                .IsRequired()
                .HasMaxLength(500);
        }
    }

我得到的错误是

No overload for method 'Entity' takes 1 arguments in Entity framework

不幸的是,我不知道这个有什么问题。 任何帮助将不胜感激。

EF Core 是 Entity Framework 的完全重写;尽管有很多相似之处,但很多实体配置需要以不同的方式完成。

以上需要是:

modelBuilder.Entity<User>()
    .Property(e => e.CreatedBy)
    .IsRequired()
    .HasMaxLength(500);

The same code works like a charm in .Net Core (by using ModelBuilder) but on .NET Framework 4, it does not compile.

.net core 与.net framework 的一些方法实现有所不同。所以这是你编译错误的原因。作为解决方案,只需按如下方式重写代码:

modelBuilder.Entity<User>()
.Property(e => e.CreatedBy)
.IsRequired()
.HasMaxLength(500);

根据您的需求在评论中,我们可以通过此方法管理多个属性:

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
    modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();

    modelBuilder.Entity<User>(entity =>
    {
        entity.Property(e => e.CreatedBy)
            .IsRequired()
            .HasMaxLength(500);

        entity.Property(e => e.ModifiedBy)
        .IsRequired();
    }
}

祝你好运。