Как узнать получить данные наследованного класса в 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.
Для того чтобы получить данные наследованного класса в Entity Framework 6, можно использовать методы LINQ, такие как OfType() или Cast().
Пример:
var phones = context.Phones.OfType<IPhone>().ToList();
Вышеуказанный код выберет только объекты типа IPhone из коллекции Phones и вернет их в виде списка.
Если вы хотите получить все объекты в виде их наследников, то можно использовать метод Cast():
var allPhones = context.Phones.Cast<Phone>().ToList();
Этот код вернет все объекты из коллекции Phones в виде их базового класса Phone, но они всё равно будут сохранены в виде своих конкретных наследников (например, IPhone).
Надеюсь, это поможет вам получить данные в нужном формате.
Для того чтобы получить данные наследованного класса в Entity Framework 6, можно использовать методы LINQ, такие как OfType() или Cast().
Пример:
var phones = context.Phones.OfType<IPhone>().ToList();Вышеуказанный код выберет только объекты типа IPhone из коллекции Phones и вернет их в виде списка.
Если вы хотите получить все объекты в виде их наследников, то можно использовать метод Cast():
var allPhones = context.Phones.Cast<Phone>().ToList();Этот код вернет все объекты из коллекции Phones в виде их базового класса Phone, но они всё равно будут сохранены в виде своих конкретных наследников (например, IPhone).
Надеюсь, это поможет вам получить данные в нужном формате.