Database design 一个人是否应该/能够生成自己类的数据库模式?

Database design 一个人是否应该/能够生成自己类的数据库模式?,database-design,orm,code-generation,Database Design,Orm,Code Generation,我使用VisualStudio类图表设计了一些类。现在我想使用ORM或者其他持久化机制来持久化这些数据。我想知道是否有一种方法可以基于类中的属性生成SQL,因为它们相当好地表示了所需的数据库结构。这将节省我大量的手动SQL输入,并给我一个良好的开端 我没有从数据库模型开始,因为我想让我的持久性与实际的“域层”分离(不确定这是否是正确的命名) ORM映射器(LLBLGen)可以根据这个模式生成代码,我只需要将生成的对象映射到我的持久化接口 这是个好主意,还是我走错了路 我找到了一个似乎可以完成这项

我使用VisualStudio类图表设计了一些类。现在我想使用ORM或者其他持久化机制来持久化这些数据。我想知道是否有一种方法可以基于类中的属性生成SQL,因为它们相当好地表示了所需的数据库结构。这将节省我大量的手动SQL输入,并给我一个良好的开端

我没有从数据库模型开始,因为我想让我的持久性与实际的“域层”分离(不确定这是否是正确的命名)

ORM映射器(LLBLGen)可以根据这个模式生成代码,我只需要将生成的对象映射到我的持久化接口

这是个好主意,还是我走错了路


我找到了一个似乎可以完成这项工作的工具(MindScape LightSpeed),但不幸的是,它只适用于VS2008。

这取决于具体情况。如果项目很小,你的截止日期很紧。当然然而,生成的代码几乎总是比手工编写的代码更难维护。这与数据库架构生成相同。看看你的项目范围。甚至可以生成数据库,看看您是否喜欢它的外观。那你自己决定吧。为下一个项目重新评估。一种尺码不能适合所有人。

这要看情况而定。如果项目很小,你的截止日期很紧。当然然而,生成的代码几乎总是比手工编写的代码更难维护。这与数据库架构生成相同。看看你的项目范围。甚至可以生成数据库,看看您是否喜欢它的外观。那你自己决定吧。为下一个项目重新评估。一个尺码不适合所有人。

这是个坏主意。类设计和数据库设计不是一回事

就我个人而言,我使用一个免费的VisualStudio插件在概念层面进行设计。它将从概念模型生成模式,还可以生成类

它生成的类对我来说有点重,但是如果你不害怕XSLT的话,代码生成是可以定制的


由于对象角色建模的性质,您对模型施加的约束可用于推断数据库模式以及“类”模型。

这是个坏主意。类设计和数据库设计不是一回事

就我个人而言,我使用一个免费的VisualStudio插件在概念层面进行设计。它将从概念模型生成模式,还可以生成类

它生成的类对我来说有点重,但是如果你不害怕XSLT的话,代码生成是可以定制的


由于对象角色建模的性质,您对模型施加的约束可用于推断数据库模式以及“类”模型。

有许多ORM可以从域模型类生成数据库模式。此外,还有一些专门为这种开发方式设计的orm。它是“模型优先”或“代码优先”的概念,一些人认为它是数据库应用程序开发的未来,因为LINQ正在取代SQL。例如,实体框架的下一个版本将完全支持这个概念。我建议尝试一下,它会自动生成和升级数据库模式,并支持LINQ查询。

有许多ORM可以从域模型类生成数据库模式。此外,还有一些专门为这种开发方式设计的orm。它是“模型优先”或“代码优先”的概念,一些人认为它是数据库应用程序开发的未来,因为LINQ正在取代SQL。例如,实体框架的下一个版本将完全支持这个概念。我建议尝试一下,它会自动生成和升级数据库模式,并支持LINQ查询。

这确实是一个小项目,具有相对平坦的数据库模式。你知道怎么做吗?(我可以使用反射自己做,但不会节省任何时间;))我用SparxEnterpriseArchitect便宜地做了这件事。导入类,然后使用Transform命令将它们转换为DDL。如果这是一个一次性的黑客攻击,我一定会使用第三方ORM来创建我自己的解决方案。LLBLGen是个不错的选择。您也可以使用NHibernate。这确实是一个小项目,具有相对平坦的数据库模式。你知道怎么做吗?(我可以使用反射自己做,但不会节省任何时间;))我用SparxEnterpriseArchitect便宜地做了这件事。导入类,然后使用Transform命令将它们转换为DDL。如果这是一个一次性的黑客攻击,我一定会使用第三方ORM来创建我自己的解决方案。LLBLGen是个不错的选择。您也可以使用NHibernate。谢谢您的澄清,Alex,我也将查看do.net!谢谢你的澄清,Alex,我也将查看do.net!