从现有数据库生成C#实体和使用Fluent NHibernate自动映射

10

我正在使用一个使用了一些非常丑陋约定的现有数据库。 我想使用NHibernate,并且我认为我可以使用Fluent NHibernate的自动映射约定修复所有这些丑陋的DB约定。 我想避免手动编写所有实体类。(这就是LINQ to SQL和SubSonic吸引人的地方)

是否可能基于我的数据库架构和在Fluent NHibernate中指定的映射来生成我的C#实体类?

另外,您知道NHibernate的设计师吗?


2
我认为我有一个建议,而不是答案。当您使用对象关系映射时,这意味着您对拥有适当的对象模型感兴趣,而不仅仅是数据模型和插入/更新/删除记录的简单方法。您应该使用OOA / D来解决问题域并创建问题对象模型,在您的情况下,您需要额外的步骤将该模型与已经存在的数据模型相关联。这就是为什么您不会轻易找到生成类的工具,因为它们应该在第一步中由您进行适当的定制。无论如何...祝你好运 :) - Wahid Shalaly
5个回答

23

4

NHibernate Mapping Generator支持Fluent NHibernate和多种数据库。还有计划支持新的NH 3.2风格的流畅映射。

看一下。


2

LLBLGenPro V3将作为多个ORM框架的通用设计工具运行,包括LLBLGen自己的框架、NHibernate、Linq2SQL和实体框架。

它还包括用于生成上述所有框架的代码和映射的模板。

Fluent NHibernate目前正在考虑中 :-)


0

我还没有找到任何可以根据现有数据库模式生成Fluent NHibernate代码的工具。

这里有一个类似的问题:

使用MyGeneration和Fluent NHibernate

至于NHibernate的设计师,有ActiveWriter,但那是为Castle ActiveRecord而不是Fluent NHibernate。我记得看到过至少另外一种工具可以作为NHibernate设计师,但我现在找不到它了。


LLBLGen Pro V3现在包括根据现有数据库生成Fluent NHibernate代码的功能。 - Matt

0

Code warrior 提供了大量的模板,用于从数据库表创建实体。我使用它来生成我的实体、服务和单元测试,然后使用 FluentNH 自动映射。这使得我的项目非常快速地启动。虽然项目需要进行一些重构,但是哪个代码库不需要呢。


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