EF 4.1模型优先代码生成工具或模板

8
有没有一个从数据库直接生成代码的模板或工具?我想使用“模型优先”方案,但不想为映射创建.edmx文件。有一个拥有许多表的数据库,我不想写所有类(我太懒了)。因此,是否存在一个模板来自动生成代码并自动设置注释/使用流畅的API定义关系等?
在以下情况下,这将非常有帮助。比如说,我曾经使用过带有POCO的.edmx,现在我不想在.edmx文件中进行映射。我想在代码中进行映射。如果有一个工具或模板可以从现有的数据库中自动生成代码中的映射,那将是很好的。
我开始学习EF 4.1。我认为“代码优先”在版本2中变为“模型优先”,即在创建/发布数据库之后(在版本1中),需要进行一些更改。真的吗?我很想听听大家的评论。谢谢。
3个回答

8

这正是我所需要的。虽然它缺少一些功能,但嘿,这是第一个版本。谢谢。 - Jonna

0

为了生成类,您可以使用POCO t4模板生成。请查看this详细链接,它将帮助您入门。这样,您将获得所有生成的类。

对于映射,您可以使用Entity Framework的Code-Only风格,但是使用POCO模板生成类和上下文将比自己创建映射具有更多优势。想象一下添加新表或修改表,这将涉及更多工作。但是,如果有任何映射工具,我肯定会很乐意知道。


我不想要 .edmx 文件来进行映射,我希望它在代码中实现。 - Jonna
我目前使用带有Oracle的.edmx,但如果我进行任何修改并保存它,存储生成的标识插入将会丢失,这让我很痛苦。如果映射在代码中,我就不必更改它。在代码中,我可以比.edmx文件拥有更多的控制权。 - Jonna
同意。我知道如何生成类(即使我很懒),我自己也用过。不过,我不知道任何映射工具。从戴夫的回答中了解到真是太好了。 - DotNetInfo

0

如果您在使用Oracle数据库时使用EF-provider Devart dotConnect,那么以下信息将帮助您选择工具。

Entity Framework Power Tools的第一个版本还包含了从现有数据库生成具有流畅映射的Code-First模型的功能。虽然有用,但这个功能在灵活性方面受到限制:开发人员只能设置连接字符串;随后,从用户可用的所有数据库对象生成类。这并不是非常方便,因为在Oracle中,例如,有许多包含数百甚至数千个表的模式可供用户使用。

与其使用这种有限的功能,Devart ADO.NET提供程序的用户可以利用Entity Developer的强大的设计时开发功能,该EF设计器随Devart提供程序一起交付。此外,还可以选择Database-First方法(EF Power Tools提供),或者Model-First方法,在其中在EDM-designer中创建Code-First类。

与EF Power Tools相比,Database-First方法也允许选择必须在模型中可用的对象,设置用于生成类名和属性的命名规则等。此外,生成的模型可以在设计器中进行修改和改进。

为了更好地满足开发人员的需求,Entity Developer中C#和VB的Code-First代码生成基于T4模板,可通过Entity Developer中功能丰富的T4编辑器轻松访问和修改。
有关Entity Developer中Code-First开发的更多信息,请参见“Entity Developer - EF Code First DbContext Template” http://www.devart.com/blogs/dotconnect/index.php/entity-developer-ef-code-first-dbcontext-template.html

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接