注意:这不是数据库优先,模型优先和代码优先的区别。
Microsoft有许多工具可以简化DbContext的使用。不幸的是,似乎几乎没有描述,也没有关于它们是什么的文档,更不用说它们的作用了。
有什么区别:
答案 0 :(得分:4)
我通常不回答我自己的问题,但这是我想出来的:
ADO.NET C# DbContext Generator
和ADO.NET C# POCO Entity Generator
之间的区别在于前者基于DbContext
创建了一个上下文,而后者则根据ObjectContext
创建了它们。
基本上,这些用于Model First
和Database First
方法。 Model First
和Database First
之间的区别在于,在Database First
中,您在数据库中定义数据模型,然后从数据库对模型进行反向工程(即创建.edmx文件)。使用Model First
时,您可以在设计器中创建模型(同样是.edmx文件),也可以手动创建模型,然后从该模型生成数据库。
在这两种情况下,您都可以从.edmx文件中生成POCO类以及DbContext
或ObjectContext
。
Entity Framework Power Tools CTP1
反向工程师从数据库中设计Code First
模型,包括POCO类,DbContext
(不认为它提供ObjectContext
代)和映射(通过OnModelCreating
方法)。
因此,归结为Database First
和Model 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 Generator
和ADO.NET C# DbContext Generator
之间的差异:ADO.NET DbContext Generator vs. ADO.NET Poco Entity Generator (ObjectContext)。
Entity Framework Power Tools CTP1
是项目上下文菜单的一个有用工具。