Entity framework 实体框架4:哪种方法最好

Entity framework 实体框架4:哪种方法最好,entity-framework,orm,entity-framework-4,Entity Framework,Orm,Entity Framework 4,我知道以前也有人问过类似的问题 我从一组xsd生成的数据对象(加上数据库模型)开始,需要将这些数据对象以1:1的比例保存到一个SQL Server数据库中。实体的数量很小(10个),db insert/update/delete(大多数是upserts)所需的逻辑很小(尽管有一些) 我想知道哪种方法最好 没有SQL Server存储过程的ORM,可能是使用T4生成的 或者像codeSmith之类的东西 实体Fx,从Db生成实体,并手动映射xsd 在运行时将实体转换为EFx实体 实体Fx,从DB生

我知道以前也有人问过类似的问题

我从一组xsd生成的数据对象(加上数据库模型)开始,需要将这些数据对象以1:1的比例保存到一个SQL Server数据库中。实体的数量很小(10个),db insert/update/delete(大多数是upserts)所需的逻辑很小(尽管有一些)

我想知道哪种方法最好

  • 没有SQL Server存储过程的ORM,可能是使用T4生成的 或者像codeSmith之类的东西
  • 实体Fx,从Db生成实体,并手动映射xsd 在运行时将实体转换为EFx实体
  • 实体Fx,从DB生成edmx文件,然后使用POCO方法 并直接保存xsd生成的实体(手工编码后) ObjectContext派生类(我想是这样的)
  • 纯代码EFx方法(看起来是我见过的最愚蠢的想法之一)
  • 还有别的吗
  • 我特别热衷于维护——如果将一个属性添加到XSD生成的实体中会发生什么,每种方法需要付出多少努力

    我倾向于使用1,因为逻辑很细,并且没有复杂的映射(m:n)。但数据模型可能会演变成更复杂的领域模型,我们不想再实现任何东西


    每种EFx方法对运行时性能的影响有多大?

    在这种情况下,您的决定应该在很大程度上取决于应用程序的未来方向

    主要考虑选项3,如果您不希望实体对实体框架组件(System .DATA实体)有任何依赖性。如果您认为您可能想将您的实体/DAL /BL层作为另一个应用程序作为独立的组件来分配或共享,请考虑选项3。这将允许您将实体与持久性实现分开。但是,如果您不希望有多个持久性实现,也不关心对EF程序集的依赖性,那么选项1或2就可以了

    另一方面,考虑到所需的持久性逻辑有限,请务必研究实体框架内的性能改进