在DbContext Generator中获取POCO类

时间:2013-05-08 14:55:55

标签: entity-framework poco dbcontext

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

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

这是我的代码:

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

1 个答案:

答案 0 :(得分:0)

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

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

你得到的错误是设计上的。它的原因没有很好的记录(据我所知),但它可能与EF只想跟踪它自己创建的实体,而不是你在投影中生成的实体有关。对于许多EF用户而言,这种差异并不明显。我更详细地介绍了here