nhibernate - CaSTLe 项目 Active Record 或 Fluent NHibernate

标签 nhibernate orm fluent-nhibernate castle-activerecord

我们一直在考虑在工作中使用 ORM。

目前我们正在尝试提高流畅的 nhibernate 对城堡事件记录的优缺点。

我们不确定每个数据库的灵 active ,因为我们的数据库不是很传统。它在主键上缺少外键和身份(有点困惑,但下一个值存储在单独的表中)。还有一些情况,我们的表名以年份为后缀。然后我们根据年份从中选择一个。这显然有点棘手。

我目前已设法使用城堡对外键映射进行排序,并通过创建自定义类来生成主键。

是否有人对这些框架中的任何一个有任何意见,或者对如何解决这些问题有任何想法。

附言。请不要要求我们重构数据库。它目前不是一个选项。

谢谢。

最佳答案

FluentNHibernate 和 ActiveRecord 是完全不同的。 第一个只是为 NHibernate 编写的、约定驱动的映射生成器。 后者是在 NHibernate 之上的抽象层以及 Active Record 模式的实现。

CaSTLe Active Record 确实对您隐藏了 NHibernate 的某些方面,它自己处理了一些事情。因此,如果您已经有一个复杂的现有数据库,那么它可能不太灵活。

FluentNHibernate 只是生成您的映射,而您一直直接使用 NHibernate 与您的数据库进行交互。

因此,虽然我不是这些方面的专家,但我想说,对于这种复杂的数据库,您希望尽可能靠近金属,所以也许是裸 NHibernate(在需要时通过 FluentNHibernate 或 hbms 映射),甚至 IBatis.NET 对你来说都是更好的选择。

ActiveRecord 的亮点在于您从头开始项目,没有遗留数据库。

关于nhibernate - CaSTLe 项目 Active Record 或 Fluent NHibernate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2264962/

相关文章:

c# - Like 不会转义特殊字符 NHibernate

c# - 有人在 Nhibernate 中使用 ASP.NET MembershipProvider 吗?

c# - 流利的 NHibernate 多对多

php - 命名约定 : singular vs plural for classes describing entities in PHP

.net - 每个子类继承映射的流利 NHibernate 表

postgresql - 如何将字符串属性映射到数据库中的二进制列?

nhibernate - NHibernate QueryOver 中的 GUID 比较引发错误

php - 学说 2 和 ORM : how to cache every query for some entity?

java - 自定义 hibernate 实体持久性

vb.net - 删除 NHibernate 表中的所有行