Никакая перегрузка для метода 'Entity' не принимает 1 аргумент в платформе Entity - PullRequest
0 голосов
/ 20 января 2020

В моем DBContext я переопределил метод OnModelCreating.

Тот же код работает как шарм в. Net Ядро (с помощью 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);
        }
    }

Ошибка, которую я получаю:

Нет перегрузки для метода 'Entity', для 1-го аргумента в среде Entity Framework

К сожалению, я не могу понять, что не так с этим. Любая помощь будет принята с благодарностью.

Ответы [ 2 ]

1 голос
/ 20 января 2020

Тот же код работает как шарм в. Net Core (с помощью ModelBuilder), но на. NET Framework 4, он не компилируется.

По сравнению с . net ядро ​​с. net фреймворком. Некоторые методы, реализованные на ios, отличаются. так что это причина вашей ошибки компиляции. В качестве решения просто перепишите свой код следующим образом:

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();
    }
}

хорошо удачи.

1 голос
/ 20 января 2020

EF Core был полностью переписан Entity Framework; хотя есть много сходств, большая часть конфигурации объекта должна быть сделана по-другому.

Выше должно быть:

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