我正在尝试创建用于测试目的的模型实体。我找到了很多这样的代码生成器,例如:
http://visualstudiogallery.msdn.microsoft.com/a850e686-df08-4245-b0bb-5872654285c9
http://visualstudiogallery.msdn.microsoft.com/d2aa9e9a-1314-4a96-8365-81771b17c597
但是,在这两个中,我注意到,与默认的 Microsoft Entity Framework 生成器不同,实体类不是从 EntityObject 类派生的!
这有什么缺点吗? EntityObject 类有什么优点呢?我检查了它的文档,没有看到任何有用的功能,没有它就无法实现!
最佳答案
这是重量级实体和 POCO 实体之间的区别。重量级实体派生自 EntityObject 并与 EF 紧密耦合 - 该实体不是持久性无知的。 POCO 实体只是常见的 .NET 类,与持久性没有任何关系(在本例中为 EF)。
基于EntityObject
的实体是“聪明的” - 因为它们知道 EF 的存在,所以有时在某些情况下更容易使用,但在其他情况下(尤其是分离的场景)更难使用。趋势是使用自 EF 4.0 起可用的 POCO。
关于entity-framework - EntityObject 有多重要?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9329666/