1

EF4.1中的DbContext Generator生成的类是否被认为是POCO和持久性无知?

如果是这样,为什么我会收到错误消息:“无法在 LINQ to Entities 查询中构造实体或复杂类型。 ”?

这是我的代码:

return searchParam = from p in ent.PartnerProfiles
                  select new PartnerProfile
                  { 
                      PartnerName =  p.PartnerName
                  }.ToList();
4

1 回答 1

0

是的,您可以将它们视为 POCO 和持久性无知,因为它们没有用于通知和跟踪来自 ObjectContext 生成器的类的更改的接线。

也就是说,EF 需要一些条件才能启用延迟加载(virtual导航属性),并且在真正持久的无知类中,您不会找到原始主键或外键属性。后者不是必需的,但有时非常方便(参见外键关联)。

您得到的错误是设计使然。它的原因没有很好的记录(据我所知),但它可能与 EF 只想跟踪它自己创建的实体,而不是你在投影中生成的实体有关。对于许多 EF 用户来说,这种差异并不明显。我在这里描述了一些更详细的信息。

于 2013-05-08T15:03:09.937 回答