每种模板类型的用途,优点和缺点是什么?

时间:2010-10-20 23:29:37

标签: entity-framework orm entity-framework-4 visual-studio-templates

我几乎没有触及EF4,但我已经使用了Linq sql了很多。我想开始使用其中一个EF模板,但我不知道哪些情况对每个模板都有意义或者意图是什么。

我有以下几种可能性:

  • 数据模板
    • ADO.NET实体数据模型
    • 基于服务的数据库(这甚至与EF有关吗?
  • 代码模板(我熟悉T4)
    • ADO.NET EntityObject Generator
    • ADO.NET自我跟踪实体生成器
  • 在线模板
    • ADO.NET C#POCO实体生成器

1 个答案:

答案 0 :(得分:14)

  

我不知道情况如何   每个人的意义或他们的意图   是

没意思听起来很粗鲁,但你有没有看过MSDN / ASP.NET来查找?周围有很多信息。每个模板都有一个很多,比我可以进入的更多。每个都有一个MSDN页面。

话虽这么说,我会给你一个快速摘要,所以在这里偶然发现的人会有一些信息。

  

ADO.NET实体数据模型

这是您使用Entity Framework作为ORM创建的文件,并且必须使用EF。在使用其他任何一个之前,您需要这个。您可以使用多种不同的方法创建EDM,包括数据库优先(从DB生成),代码优先,模型优先等。

  

基于服务的数据库

我从来没有听说过这个术语,鉴于我最近和EF一起工作(和阅读),我怀疑这与EF有关。

  

ADO.NET EntityObject Generator

为从EntityObject类继承的实体生成类。与默认EF代码生成器相同,除了将输出代码放入Model.edmx.designer.cs(默认)文件之外,代码将被放入单独的文件中。我个人认为这个模板没有任何好处。

  

ADO.NET自我跟踪实体生成器

当您要开发N层应用程序时(例如,如果您希望允许WCF / Silverlight应用程序与您的模型一起使用),则为实体生成类。实体被EF Graph设置为“可跟踪”,以便处理来自各种应用程序的持久性操作。

  

ADO.NET C#POCO实体生成器

我的最爱。 :)为继承自 nothing 的实体生成类。他们不知道他们被用于坚持。当您需要域/持久层的持久性 - 无知性,可测试性和松散耦合时,将此用于应用程序。