Пожалуйста, посмотрите на следующий код:
public class SomeEntity
{
public int Id { get; set; }
public int UserId { get; set; }
public virtual User User { get; set; }
}
public class SomeEntityA : SomeEntity
{
public int Number { get; set; }
}
public class SomeEntityB : SomeEntity
{
public string Text { get; set; }
}
public class User
{
public int Id { get; set; }
public int Username { get; set; }
public virtual ICollection<SomeEntityA> SomeEntitiesA { get; set; }
public virtual ICollection<SomeEntityB> SomeEntitiesB { get; set; }
}
У меня вопрос: есть ли способ настроить FluentApi, чтобы показанные выше отношения работали правильно? В настоящее время, когда новый объект SomeEntityA добавляется в User, EF создает новую запись в таблице SomeEntities с правильно установленной FK User_Id, однако в SomeEntitesA, которая является унаследованной таблицей, есть также свойство FK User_Id - устанавливается как null, и когда я пытаюсь получить SomeEntitesA коллекция из объекта User - она пустая. Я понимаю, почему это происходит, но я не уверен, есть ли способ это исправить? Единственное решение, которое приходит мне в голову на данный момент, это заменить следующий код:
public virtual ICollection<SomeEntityA> SomeEntitiesA { get; set; }
public virtual ICollection<SomeEntityB> SomeEntitiesB { get; set; }
с:
public virtual ICollection<SomeEntity> SomeEntitiesA { get; set; }
public virtual ICollection<SomeEntity> SomeEntitiesB { get; set; }
и настройте FluentApi.
Любые мысли будут высоко оценены.