При написании запросов к конфигурации Entity Framework TPH (таблица на иерархию) можно использовать метод OfType<T>
LinQ для фильтрации типов. Это также позволяет вам получить доступ к свойствам в этом производном классе. Например, если у нас был класс ChildA
, подобный этому:
public class ChildA : ParentType
{
public string FavouriteFood { get; set; }
}
Мы могли бы запросить это так:
var childAWhoLikeCheese = context.ParentTypes
.OfType<ChildA>()
.Where(x => x.FavouriteFood == "Cheese");
Это фактически создаст запрос примерно так:
SELECT ...
FROM ParentTypes
WHERE Discriminator = "ChildA"
AND FavouriteFood = "Cheese"