微软提供的各种数据模板有什么区别?

时间:2011-09-03 17:08:10

标签: entity-framework-4.1

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

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

有什么区别:

2 个答案:

答案 0 :(得分:4)

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

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中间人。

答案 1 :(得分:1)

ADO.NET C# POCO Entity Generator存在很长时间,是Mode First方法的一部分。阅读它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是项目上下文菜单的一个有用工具。