我们一直在寻找在工作中使用ORM。
目前,我们正试图通过流畅的反对城堡活动记录来提升亲和力量。
我们不确定每个人的灵活性,因为我们的数据库不是很传统。它缺少主键上的外键和标识(有点令人困惑,但下一个值存储在单独的表中)。还有一些情况我们的表名称是年份后缀。然后我们根据年份选择一个。这显然有点棘手。
我目前设法使用castle对外键映射进行排序,并通过创建自定义类来生成主键。
是否有人对这些框架中的任何一个都有任何意见,或者对如何解决这些问题的想法有所了解。
聚苯乙烯。请不要让我们重构数据库。目前它不是一种选择。
感谢。
答案 0 :(得分:9)
FluentNHibernate和ActiveRecord完全不同。 第一个是NHibernate的编码,常规驱动的映射生成器。 后者是NHibernate之上的抽象层以及Active Record模式的实现。
Castle Active Record确实隐藏了NHibernate的某些方面,自己处理一些事情。因此,如果您已经拥有一个复杂的现有数据库,那么它可能不太灵活。
FluentNHibernate只生成您的映射,您可以直接使用NHibernate与数据库进行交互。
因此,虽然我不是其中任何一个的专家,但我会说,对于这种复杂的数据库,你希望保持尽可能接近金属,所以可能只是裸NHibernate(通过FluentNHibernate或hbms映射到需要的地方),甚至IBatis.NET对你来说都是更好的选择。
ActiveRecord闪耀的地方,就是你从头开始你的项目,没有遗留数据库。
答案 1 :(得分:0)
这是一个数据库第一种方法代码生成器,它支持Castle Castle ActiveRecord和EntityFramework CodeFirst。 试试看。 http://salardbcodegenerator.codeplex.com/
答案 2 :(得分:0)
更新的答案。以防有人仍在考虑Castle Active Record。
Castle ActiveRecord已过时。这意味着,您不能将它与NHibernate版本> = 3.3一起使用。