从类生成数据库结构的ORM

时间:2008-12-18 03:07:21

标签: asp.net orm

我看过NHibernate和EntitySpaces,他们似乎都有不同的工作方式。

在EntitySpaces中,您可以定义数据库表和表关系,并为您生成类。

在NHibernate中,您可以定义类,并为您生成表关系。这就是我要找的。

是否还有其他ASP.NET ORM从NHibernate等类生成表? 有什么建议吗?

7 个答案:

答案 0 :(得分:4)

DataObjects.Net也使用“Code first”(模型优先)方法。 见http://wiki.dataobjects.net/index.php?title=Features

答案 1 :(得分:3)

Linq to SQL可以使用dataContext.CreateDatabase()方法从类创建数据库表结构和关系。

答案 2 :(得分:2)

Mindscape LightSpeed提供此功能 - 完整计划往返的一部分。

希望这有帮助

http://www.mindscape.co.nz/blog/index.php/2008/06/17/schema-round-tripping-in-the-lightspeed-designer/

答案 3 :(得分:1)

我更喜欢一种方法,我可以完全控制生成我需要的东西。在ORM的情况下,我获得与我的表匹配的类。我相信使用我自己的对象域来源于我的业务,​​而不是基础数据存储是正确的方法。我的业务数据的类层次结构应该100%独立于数据存储。

答案 4 :(得分:1)

LightSpeed有一个非常好的Visual Studio设计器,它支持从数据库生成.NET实体类和从.NET实体更新数据库。

答案 5 :(得分:0)

这是NHibernate所做的事情。

关于这个话题(那个Draemon)开始了。我个人的观点是,除非性能是您的首要任务,并且所有其他事情都必须受到影响(例如,在为制造工厂编写软件时),您最好先处理域模型。

我的理由:你花在编码域上的时间比对数据库本身要多得多 - 特别是在使用orm时。所以明智地花时间。

答案 6 :(得分:0)

我在使用Genome ORM方面取得了相当不错的成功。它为你做了很多工作。您可以先设计域模型,然后从中生成数据库脚本。除此之外,Genome还为您生成DTO。它非常擅长并节省了很多开发人员的时间。

http://www.genom-e.com