Как в EntityFramework Core использовать два свойства одного типа?
Пытаюсь понять, возможно ли реализовать в EF Core такое отношение (код не из предметной области):
public class Company
{
public int Id { get; set; }
public string Name { get; init; }
public User SimpleUser { get; set; }
public User AdminUser { get; set; }
private Company() { }
public Company(string name)
{
Name = name;
}
}
public class User
{
public int Id { get; set; }
public string Name { get; init; }
private User() { }
public User(string name, Company company)
{
Name = name;
Company = company;
}
public int CompanyId { get; set; }
public virtual Company Company { get; set; }
}
Во-первых, я не могу понять, какое здесь отношение. Один-к-одному, один-ко-многим или многие-ко-многим?
С конфигурацией по умолчанию при создании миграции появляется ошибка:
System.InvalidOperationException: Unable to determine the relationship represented by navigation 'Company.AdminUser' of type 'User'. Either manually configure the relationship, or ignore this property using the '[NotMapped]' attribute or by using 'EntityTypeBuilder.Ignore' in 'OnModelCreating'.
Похожий вопрос был задан здесь:
Его решение в использовании InverseProperty. Однако в вопросе структура класса несколько отличается от моего. По ссылке класс содержит одно свойство, содержащее тип Faculty, и второе свойство, содержащее список Faculty. Мне не удалось правильно применить указанный метод.
Любые соображения приветствуются.