Entity Framework наследование и отношения - PullRequest
0 голосов
/ 07 сентября 2018

Я пытаюсь реализовать отношение (один ко многим) для моих сущностей, которые используют наследование TPH по умолчанию

public abstract class base
{
        public int Id { get; set; }
        ...
}

public class X : base
{
        public ApplicationUser User { get; set; }
       ...
}

public class Y : base
{
        public ApplicationUser User { get; set; }
       ...
}

public class ApplicationUser
{
        public string Name { get; set;}
       ...
        public ICollection<X> classX { get; set; }
        public ICollection<Y> classY { get; set; }
}

Все работает, но проблема в том, что Entity Framework создает две колонки в базовой таблице - User_Id и User_Id1. Как я могу сопоставить его так, чтобы для внешнего ключа был только один столбец (User_Id) и в зависимости от содержимого записи в столбце Discriminator (созданного EF) внешний ключ был назначен соответствующему объекту?

1 Ответ

0 голосов
/ 07 сентября 2018

Как можно сопоставить его так, чтобы для внешнего ключа (User_Id) был только один столбец, и в зависимости от содержимого записи в столбце Discriminator (созданной EF) внешний ключ был назначен соответствующему объекту?

Ты не можешь. Подумав немного, я не вижу очевидной причины, по которой эту функцию невозможно реализовать. Просто нет.

Если вы хотите, чтобы X и Y совместно использовали атрибут, извлекайте их как из промежуточного типа XYEntity, так и из промежуточного типа, и присвойте ApplicationUser одно свойство навигации типа ICollection<XYEntity>.

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