由EF4.1中的DbContext Generator生成的类是否被视为POCO和持久性无知?
如果是这样,为什么我会收到错误: “实体或复杂类型''无法在LINQ to Entities查询中构建。”?
这是我的代码:
return searchParam = from p in ent.PartnerProfiles
select new PartnerProfile
{
PartnerName = p.PartnerName
}.ToList();
答案 0 :(得分:0)
是的,您可以将它们视为POCO和持久性无知,因为它们没有用于通知和跟踪ObjectContext生成器中的类所具有的更改的连线。
也就是说,EF需要启用延迟加载的某些条件(virtual
导航属性),并且在非常持久的无知类中,您将找不到原始的主键或外键属性。后者不是必需的,但有时非常方便(见foreign key associations)。
你得到的错误是设计上的。它的原因没有很好的记录(据我所知),但它可能与EF只想跟踪它自己创建的实体,而不是你在投影中生成的实体有关。对于许多EF用户而言,这种差异并不明显。我更详细地介绍了here。