【问题标题】:What is the difference between that various data templates microsoft provides?微软提供的各种数据模板有什么区别?
【发布时间】:2011-09-03 17:08:10
【问题描述】:

注意:这不是数据库优先、模型优先和代码优先之间的区别。

Microsoft 有许多工具可以简化 DbContext 的使用。不幸的是,似乎几乎没有描述,也没有关于它们是什么的文档,更不用说它们的作用了。

有什么区别:

【问题讨论】:

    标签: entity-framework-4.1


    【解决方案1】:

    我通常不会回答我自己的问题,但这是我想出的:

    ADO.NET C# DbContext GeneratorADO.NET C# POCO Entity Generator的区别在于前者基于DbContext创建上下文,后者基于ObjectContext创建上下文。

    基本上,这些用于Model FirstDatabase First 方法。 Model FirstDatabase First 之间的区别在于,在Database First 中,您在数据库中定义数据模型,然后从数据库中对模型进行逆向工程(即创建一个.edmx 文件)。使用 Model First 时,您可以在设计器中(同样是 .edmx 文件)或手动创建模型,然后从该模型生成数据库。

    在这两种情况下,您都可以从 .edmx 文件生成 POCO 类和 DbContextObjectContext

    Entity Framework Power Tools CTP1 对数据库中的Code First 模型进行逆向工程,包括 POCO 类、DbContext(不要认为它提供了ObjectContext 生成)和映射(通过OnModelCreating 方法)。

    所以这归结为在Database FirstModel First 中,“模型”由xml .edmx 文件(或在某些情况下,多个文件)定义。在Code First 中,模型是使用OnModelCreating 中的流畅代码映射定义的。

    使用 Power Tools 对数据库进行逆向工程时,它不会创建 .edmx 文件,而是在代码中创建映射。因此,跳过了 xml 中间人。

    【讨论】:

      【解决方案2】:

      ADO.NET C# POCO Entity Generator 存在很长时间,是模式优先方法的一部分。阅读它here

      ADO.NET C# POCO Entity GeneratorADO.NET C# DbContext Generator 之间的区别在这里讨论:ADO.NET DbContext Generator vs. ADO.NET Poco Entity Generator (ObjectContext)

      Entity Framework Power Tools CTP1 是用于项目上下文菜单的有用工具。

      【讨论】:

      • Julie 说的是 EF June 2011 CTP,而不是 EF Power Tools CTP1。 Power tools 不会更改 API,它只是一组与 EF 配合使用的工具,例如对现有数据库进行逆向工程。
      • 谢谢@Mystere,我之前没有发现区别。我更新了我的答案。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-03-25
      • 2011-05-06
      • 1970-01-01
      • 1970-01-01
      • 2012-01-13
      • 2015-10-18
      • 1970-01-01
      相关资源
      最近更新 更多