我几乎没有接触过EF4,但是我用过很多Linq to sql。我想开始使用其中一个 EF 模板,但我不知道什么情况对每个模板有意义或他们的意图是什么。
我有以下几种可能:
- 数据模板
- ADO.NET 实体数据模型
- 基于服务的数据库(这甚至与 EF 有关吗?
- 代码模板(我熟悉T4)
- ADO.NET 实体对象生成器
- ADO.NET 自跟踪实体生成器
- 在线模板
- ADO.NET C# POCO 实体生成器
我几乎没有接触过EF4,但是我用过很多Linq to sql。我想开始使用其中一个 EF 模板,但我不知道什么情况对每个模板有意义或他们的意图是什么。
我有以下几种可能:
我不知道什么情况对每个人都有意义,也不知道他们的意图是什么
听起来没有粗鲁的意思,但是您是否查看了 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.