@stcmd04236

Как узнать получить данные наследованного класса в EF 6?

Добрый день всем!
Как в EF получить наследованные объекты?

Например:
class Phone
    {
        public int Id { get; set; }

        public string Name { get; set; }

        public double Price { get; set; }
    }

    class IPhone : Phone
    {
        public string Manufacturer { get; set; }
    }


Сохранение в БД:
public void Create()
        {
            var phone = new Phone();
            var iphone = new Phone();

            Phones.Add(phone);
            Phones.Add(iphone);
        }


Если сделать обычный запрос т.е. без указания типа то ef возвращает все данные в виде Phone. Как можно получить все данные в том виде каком они есть. Например если данные сохранены в виде IPhone тогда IPhone а если Samsung то в виде Samsung.
  • Вопрос задан
  • 115 просмотров
Решения вопроса 1
Вы изучите для начала маппинг в БД 3 вида при наследовании.
TPH, TPT, TPC
https://msdn.microsoft.com/ru-ru/data/jj591617.aspx
metanit.com/sharp/entityframework Глава 7. Наследование в Entity Framework
Посмотрите как в БД сохраняется.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@saltydogd
Проверять совместимость типов .where (p => p is ConcretePhone) и разносить в соответствующие коллекции
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы