我有以下课程(过于简化):
public class Person
{
public int ID { get; set; }
}
public class Content
{
public int ID { get; set; }
}
public class Image : Content
{
public bool Private { get; set; }
public Person Author { get; set; }
}
public class Tag
{
public int ID { get; set; }
public Content Content { get; set; }
public Person Person { get; set; }
}
我想得到所有在Tags
哪里Content
是一个Image
和Image
不是Private
(同时急切地加载一个属性Image
)。尝试执行此操作但不起作用的示例:
var tags = context.Tags
.Include("Content.Author")
.Include("Person")
.Where(t => !((Image)t.Content).Private);
我收到以下错误:
无法将类型“内容”转换为类型“图像”。LINQ to Entities 仅支持转换 EDM 基元或枚举类型。
并Where
删除了该子句:
指定的包含路径无效。EntityType“内容”未声明名为“作者”的导航属性。
我需要什么样的查询和/或模型模式更改才能完成这种方法?