2011-05-25 76 views
8

是否有模板或工具直接从数据库生成代码?我想使用模型第一种方案,但不希望.edmx文件进行映射。有一个有很多表的数据库,我不想写所有的类(我很懒)。那么,是否有一个模板来生成代码并设置注释/使用流利的API来自动地从现有数据库中定义关系等等?EF 4.1模型第一代码生成工具或模板

这在以下情况下也会有所帮助。比方说,我正在使用POCO使用.edmx,现在我不想在.edmx文件中使用映射。我想要代码中的映射。如果有一个工具或一个模板来从现有数据库的代码中生成映射,那将是非常好的。

我开始学习EF 4.1。我认为“代码首先在版本2中成为模型,即在数据库被创建/发布(在版本1中)之后并且需要一些改变”。这是真的吗?我很想听听一些意见。谢谢。

+1

+1为你的懒惰 – 2011-05-27 04:11:20

回答

8

查看刚刚发布的EF Power Tools CTP1的'Reverse Engineer Code First'功能。

+0

这正是我所需要的。它虽然缺乏一些功能,但嘿它是第一个版本。谢谢。 – Jonna 2011-05-25 00:58:10

0

对于生成类,您可以使用POCO t4模板生成。看看this详细的链接,这将有助于你开始。这样你将得到所有生成的类。

对于映射,您可以对实体框架使用纯代码风格,但使用POCO模板生成类和上下文比自己创建映射具有更多的优势。想象一下,添加新表格或修改表格会涉及更多的工作。但我一定会很想知道是否有任何映射工具。

+0

我不想对映射.edmx文件。我想在代码中使用它。 – Jonna 2011-05-25 00:29:04

+0

我目前使用.edmx与甲骨文,这是一种痛苦,因为商店生成的身份插入丢失,如果我做任何修改并保存它。如果映射位于代码中,我不必更改它。我可以在代码中拥有比.edmx文件更多的控制权。 – Jonna 2011-05-25 00:40:41

+0

耶同意了。我知道如何获得我自己使用的类(即使我很懒)。不知道任何映射工具。很高兴知道戴夫的回答 – DotNetInfo 2011-05-25 01:37:45

0

使用Oracle数据库时,您可能正在使用EF提供程序Devart dotConnect for Oracle。在这种情况下,以下信息将帮助您选择该工具。

实体框架电动工具的第一个版本还包含通过现有数据库的流畅映射生成Code-First模型的功能。虽然有用,但这种功能在其灵活性方面受到限制:开发人员只能设置连接字符串;接下来,从用​​户可用的所有数据库对象中生成类。这并不是非常方便,因为在Oracle中,例如,包含数百甚至数千个表的大量模式可供用户使用。

Devart ADO.NET提供商的用户可以利用Entity Developer的强大的设计时开发能力,这是与Devart提供商一起交付的EF设计人员,而不是诉诸于这种有限的功能。 EF Power Tools中提供的Database-First方法与Model-First方法之间的选择也是可能的,在该方法中,EDM设计器中将创建Code-First类。

相较于EF电动工具,数据库-First方法EF代码优先模式的发展也允许选择必须在模型中可用的对象,类名和属性等的产生设置命名规则上。此外,最终的模型可以在设计者中进行修改和改进。

为了更好地满足开发人员的需求,C#和VB的Entity Developer中的Code-First代码生成基于易于访问的T4模板,并且可以在Entity Developer中包含的功能丰富的T4 Editor中进行修改。

有关代码优先发展实体开发的更多信息,请参见“实体开发 - EF代码优先的DbContext模板” http://www.devart.com/blogs/dotconnect/index.php/entity-developer-ef-code-first-dbcontext-template.html