Ошибка EF Core неверный столбец "дискриминатор" с наследованием - PullRequest
0 голосов
/ 18 января 2020

Я новичок в EF Core и извините, если это глупый вопрос. При попытке запросить

Context.EmployeeAddressNavigation.where(x =>x.Name.Contains("name")).Select(x => new {x.Id,x.employAddress})

Employee

public class Employee
{
   public Guid Id {get;set;}
   public string Name {get;set;}
}

EmployeeAddress

появляется неверный столбец «Дискриминатор»
public class EmployeeAddress
{
  public Guid EmployeeId {get;set;}
  public Guid AddressId {get;set;}
}

EmployeeAddressNavigation

public class EmployeeAddressNavigation : Employee
{
   public EmpoyeeAddress employAddress {get;set;}
}

Я настроил onModelCreate следующим образом

override void OnModelCreating(ModelBuilder modelBuilder)
{
    modelBuilder.Entity<Employee>().ToTable("employee");
    modelBuilder.Entity<EmployeeAddress>().ToTable("employeeaddress");
    modelBuilder.Entity<EmployeeAddressNavigation>()
            .HasMany(r => r.EmployeeAddress)
            .WithOne()
            .HasForeignKey(r => r.EmployeeId);
}

Я видел подобный вопрос здесь EF Core “Неверное имя столбца Ошибка «Дискриминатор» с наследованием , но я не понял, как исправить мою проблему? Кто-нибудь может также объяснить, как использовать HasDiscriminator () и какова его цель?

1 Ответ

0 голосов
/ 18 января 2020

Если в вашей модели существует иерархия наследования, вы должны указать дискриминатор.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...