У меня есть рабочая модель, но я заметил, что отношения были созданы дважды в базе данных. Первоначально он создал два столбца в таблице, но с добавлением указанного атрибута внешнего ключа теперь имеет только один.
У меня есть класс Account, в котором работают многие работодатели. (один ко многим) Вот классы:
public class Account
{
public int AccountId { get; set; }
[Required(ErrorMessage = Constants.ValidationMessages.FieldRequired)]
public string Name { get; set; }
public int? PrimaryUserId { get; set; }
[ForeignKey("PrimaryUserId")]
public Employer PrimaryUser { get; set; }
[ForeignKey("EmpAccountId")]
public ICollection<Employer> Employers { get; set; }
}
вот унаследованный класс Employer
public class Employer : User
{
public Employer()
{
DepartmentsToPost = new Collection<Department>();
Contacts = new Collection<Contact>();
}
[Display(Name = "Workplaces to advertise jobs")]
public virtual ICollection<Department> DepartmentsToPost { get; set; }
public int EmpAccountId { get; set; }
[ForeignKey("EmpAccountId")]
public virtual Account Account { get; set; }
public override string UserType
{
get { return "Employer"; }
}
}
Таблица пользователей:
UserId
Username
FirstName
Surname
EmpAccountId
Discriminator
Таблица счетов
AccountId
Name
PrimaryUserId
Существует одна ссылка на таблицу User - это поле PrimaryUser
, и это правильно. Есть два других отношения: Учетная запись -> Работодатели. EF назвал их Account_Employers
и Employer_Account
. Это дубликаты.
Как я могу предотвратить это?