Asp.net 从类生成数据库结构的ORM

Asp.net 从类生成数据库结构的ORM,asp.net,orm,Asp.net,Orm,我看过NHibernate和EntitySpace,它们的工作方式似乎有所不同 在EntitySpace中,定义数据库表和表关系,并为您生成类 在NHibernate中,定义类并为您生成表关系。这就是我要找的 是否有其他ASP.NET ORM从NHibernate之类的类生成表? 有什么建议吗?Linq to SQL可以使用该方法从类创建数据库表结构和关系。这是NHibernate所做的事情 关于这个话题(德雷蒙)开始了。我个人的观点是,除非性能是您的绝对第一优先事项,并且所有其他事情都必须受到

我看过NHibernate和EntitySpace,它们的工作方式似乎有所不同

在EntitySpace中,定义数据库表和表关系,并为您生成类

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

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

Linq to SQL可以使用该方法从类创建数据库表结构和关系。

这是NHibernate所做的事情

关于这个话题(德雷蒙)开始了。我个人的观点是,除非性能是您的绝对第一优先事项,并且所有其他事情都必须受到影响才能实现这一点(例如,在为制造厂编写软件时),否则您最好先处理域模型


我的理由是:针对域编码的时间比针对数据库本身编码的时间要多得多——特别是在使用orm时。所以,明智地利用这段时间。

我在基因组ORM方面取得了相当大的成功。它为你做了很多工作。您可以首先设计域模型,然后从中生成DB脚本。除此之外,基因组为您生成DTO。它在这方面做得非常好,并为开发人员节省了大量时间


我更喜欢一种我可以完全控制生成我所需内容的方法。对于ORMs,我得到的类与我的表相匹配。我相信,使用我自己的对象域(源于我的业务而非底层数据存储)是正确的选择。代表我的业务数据的类层次结构应该100%独立于数据存储。

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

Mindscape LightSpeed提供了这一功能-完整方案的一部分往返

希望这有帮助

DataObjects.Net也使用“代码优先”(模型优先)的方法。
请参见

从对象端开始并自动生成数据库端对我来说似乎是一个非常糟糕的主意。它不可能生成“好”的数据库设计。只是我的想法,但反过来说,它不会生成一个好的对象模型!我理解你的问题,但是基于自动生成表关系的能力选择ORM可能是个坏主意。我一直不得不调整设计器/生成器输出的内容,这取决于你认为模型的“主要”具体化。您的数据库模型是主数据库模型,而对象模型是派生数据库模型,或者反过来说。nhibernate本身并不生成数据库模型,您仍然需要执行从对象属性到数据库字段的映射,定义它的数据类型,等等。完成此操作后,nhibernate为您提供了在指定dbms中自动创建db模型的选项。db模型的好坏仍取决于您:)是的,但Lightspeed没有提供非常开放的设计选择。。。复合键几乎不受支持,per Mindscapes拥有自己的网站“我们不希望主键有任何商业价值”。嗯。伟大的直到它不是。