5

我几乎没有接触过EF4,但是我用过很多Linq to sql。我想开始使用其中一个 EF 模板,但我不知道什么情况对每个模板有意义或他们的意图是什么。

我有以下几种可能:

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

1 回答 1

14

我不知道什么情况对每个人都有意义,也不知道他们的意图是什么

听起来没有粗鲁的意思,但是您是否查看了 MSDN/ASP.NET 以找出答案?周围有很多信息。这些模板中的每一个都有很多内容,比我可以在这里介绍的要多。每一个都有一个 MSDN 页面。

话虽如此,我会给你一个快速的总结,所以在这里绊倒的人有一些信息。

ADO.NET 实体数据模型

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

基于服务的数据库

我从未听说过这个术语,而且鉴于我最近一直在使用 EF(和阅读),我怀疑这与 EF 有关。

ADO.NET 实体对象生成器

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

ADO.NET 自跟踪实体生成器

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

ADO.NET C# POCO 实体生成器

My favourite. :) Generates classes for entities which inherit from nothing. They have no idea that they are being used for persistence. Use this for applications when you want persistence-ignorance, testability and loose-coupling of your domain/persistence layers.

于 2010-10-21T04:19:13.073 回答