实体框架 3.5 还是 4.0?

7

我正在启动一个新项目,客户希望在其业务层中使用Entity Framework。他们目前正在使用.NET Framework 3.5。升级到4.0以使用Entity Framework值得吗?这两个版本之间有哪些重要的更改?


它支持的不仅仅是POCO。看看这个:https://dev59.com/8kzSa4cB1Zd3GeqPq_GI - Adam Rackis
1
没有 EF 3.5。它从 1.0 直接跳到了 4.0。 - Zephyr was a Friend of Mine
1
我认为他在询问如何在.NET Framework 3.5或4.0中使用EF,以及从3.5升级到4.0是否有涉及EF的任何优势。 - gligoran
1
是的,我指的是 .NET 3.5 和 4.0 中的 EF。 - Dismissile
1个回答

9
Entity 4.0支持POCO(Plain Old CLR Objects),如果您进行模型优先(而不是数据库优先)开发,比如Domain Driven Design,这是一个巨大的优势。 这篇文章比较了Entity 1.0和4.0。关于4.0,它列出并讨论了以下新功能:
  1. 持久性无关
  2. POCO(普通的CLR对象)
  3. T4代码生成
  4. 自跟踪实体
  5. 模型优先开发
  6. FK关联
  7. 仅代码

1
如果我们正在进行数据库优先设计,POCO是否具有很大的好处? - Dismissile
它仍然有价值,因为类对象可以独立于数据库。这使您在随时间更改对象时具有更大的灵活性。例如,您可以从1:1映射到数据库开始,但是您始终可以重新设计/重构类以与物理数据库结构不同。此外,并没有要求如果您首先设计数据库,则类模型必须是1:1映射。 - Matt
创建4.0实体模型时,它默认会将它们创建为POCO类吗?还是我需要做些什么来使其成为POCO? - Dismissile
1
使用POCO并采用数据库优先设计并不是互相排斥的,我最近的项目中实际上将它们结合起来了。POCO支持的好处是可以选择以持久性无关的方式开发您的领域层(POCO不是从EntityObject类派生的),这使得单元测试您的领域函数变得更加容易。 - Slauma

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接