![]() |
1
1
关于亚音速的一些你不喜欢的事情:
是的,我同意这是非常违反直觉的,我从来没有深入了解为什么会这样做,但是你可以很容易地修改模板来解决这个问题。
您可能认为这会导致问题,但我还没有遇到任何问题,我还没有看到关于stackoverflow的报告。
只有当您编辑t4文件时,它才会自动调用,所以实际上您只需要在更改模板时提供最新的模式。 |
![]() |
2
3
nhibernate不遵循活动记录模式,它遵循存储库模式。 FluentHibernate的目标是不再需要维护映射文件、代码生成等。它支持流畅定义的与nhibernate hbm文件相当的c等价文件,这比XML非常好,而且可维护性更高,但是它的自动映射功能更强大。如果您的数据库是用强定义的约定设计的,那么可以配置fnh,它将正确生成所有域对象到数据库结构的映射。 如果您对设计数据库更感兴趣,并且让它指定您的域模型(这会让我感到非常不愉快),这里有一个问题专门讨论 NHibernate Generators 回答您的意见: nhibernate本身不会改变数据库本身,但是包含一个名为schemaExport的实用程序类,它提供一个名为create的工厂方法。您可以使用它来生成SQL语句,以NHibernate看到您的关系结构的方式来创建数据库。可以选择直接对数据库运行,也可以写入控制台。 这个实用程序对于将您的域转发到数据库非常有用,目前我正在为所有新的应用程序开发编写数据库。我仍在研究维护数据库版本的最佳方法。最坏的情况是,只需sc SQL输出,并要求更改模式的每一行的注释具有特定的update/delete语句,以获得结果。这将使按版本向前/向后滚动很容易,或者只需执行整个脚本就可以从头开始创建数据库。 如果您只进行反向映射,那么应该有一些工具可以生成您的数据库需要映射到等效类的相应HBM(即,如果您原本要在域模型中编写这些类,那么它将导出当前数据库的匹配模式)。 |
![]() |
3
2
除了NH和亚音速以外,还有其他几个值得一看:
|
![]() |
4
1
我们使用codesmith来生成代码,并强烈推荐它作为生成工具。 如果您看看codesmith,它支持各种ORM/Business对象模板。 我们实施了自己的CSLA(见 http://www.lhotka.net/ )几年前的模板来处理CSLA,这不仅仅是ORM。CSLA非常好,工作非常好,而且它的可扩展性很高。我们现在已经创建了自己的框架,并且放弃了核心的CSLA框架,因为我们不需要所有的特性,并且使事情变得更加轻量级。 |
![]() |
5
0
我想知道旧的亚音速2.2是否更适合您的要求?它确实为每个表生成单独的类,仅在您告诉它时才重新生成,并且支持ActiveRecord模式。在文档中查看更多详细信息,网址为 http://subsonicproject.com/docs/Main_Page |
![]() |
6
0
关于以前的文章,CSLA不是ORM(您可以手动从数据库映射到业务对象)。CSLA、NHibernate、亚音速等不支持活动记录模式。 如果您正在考虑不支持活动记录模式的框架,那么我将考虑Habanero( http://www.habanerolabs.com/ )这是开放源码的,允许您通过XML配置或代码构建业务对象。 Habanero 它远不止是一个ORM,而且具有丰富的域(业务对象)支持,并具有用于表示域对象(业务对象)的Powerfull对象模型。 |
![]() |
Montaser Majid · 用于从多行中提取单行的SQL查询 3 年前 |
![]() |
Chance · 根据Sequelize中的字段拉入特定记录/行 3 年前 |
![]() |
lambchop01 · GORM如何为相似实体之间的关系建模 3 年前 |
![]() |
Shale · 如何将此查询更改为ORM? 3 年前 |
![]() |
Daniel Morales · 替换mongo DB中的嵌入字段 3 年前 |
![]() |
Vinay P · NodeJS和ORM? 7 年前 |
![]() |
MadDoctor5813 · 在Django模型中创建“简单”字典? 7 年前 |