实体框架4:哪种方法是最好的

时间:2010-05-06 11:52:58

标签: entity-framework orm entity-framework-4

我知道以前曾问过类似的问题。

我开始使用一组xsd生成的数据对象(加上db模型)并且需要将这些几乎1:1保存到单个SQL Server数据库中。实体数量很少(10),db插入/更新/删除(主要是upserts)所需的逻辑很薄(虽然有一些)。

我想知道哪种方法最好?

  1. 没有与SQL Server存储过程的ORM,可能是使用T4生成的 或类似codeSmith
  2. 之类的东西
  3. 实体Fx,从Db生成实体,并手动映射xsd 实体到运行时的EFx实体
  4. 实体Fx,从DB生成edmx文件,然后使用POCO方法 并直接持久化xsd生成的实体(手动编码后) 我猜想ObjectContext派生类)
  5. 仅限代码的EFx方法(看起来像我见过的最愚蠢的想法之一)
  6. 其他什么?
  7. 我特别热衷于维护 - 如果将属性添加到XSD生成的实体中会发生什么,每种方法需要花费多少精力。

    我很想和1一起使用,因为逻辑很小并且没有复杂的映射(m:n)。但有可能数据模型将演变为更复杂的领域模型,我们不希望重新实现任何东西。

    每个EFx方法在运行时性能方面有多糟糕?

1 个答案:

答案 0 :(得分:1)

在这种情况下,您的决定应主要通知您申请的未来方向。

如果您不希望您的实体对Entity Framework程序集(System.Data.Entity)有任何依赖性,则应主要考虑选项3。如果您认为您可能希望将实体/ DAL / BL层作为独立程序集分发或共享给另一个应用程序,请考虑选项3.这将允许您将实体与持久性实现分开。但是,如果您不希望有多个持久性实现并且不关心对EF程序集的依赖性,则选项1或2将正常工作。

在旁注中,鉴于所需的持久性逻辑有限,请务必在实体框架中查看compiled queries以获得较大的性能提升。