旧数据库 - 我应该使用NHibernate吗?

时间:2010-10-18 10:32:07

标签: nhibernate legacy-database

我遇到了涉及复合键的遗留数据库,没有空间来修改数据库。

问题似乎是密钥的一部分也用于每个外键。 所以如果我有这样的表A和B:

A

  • 公司(PK)
  • aId(PK)
  • someMoreInfo

B

  • 公司(PK,FK)
  • bId(PK)
  • aId(FK)
  • someOtherInfo

表B中的公司字段是表B的PK,用于表格A的FK。我尝试的所有内容都引导我Repeated column in mapping例外。

所以这不是'我怎么做'的问题(好吧,如果你有一个解决方案 - 继续我认为自己很幸运,如果这只是我的想象力而且没有真正的问题......)但是'你呢?觉得这是对的'问题。

  • 是否可以使用nhibernate访问这样的db(除了映射所有表1:1而不引用)
  • 你认为这是个好主意吗?
  • 根据我的具体情况,有哪些替代方案(即O / R-Mappers是否擅长这个)?

BTW:This是同一个问题,我的一个复杂方案是here

1 个答案:

答案 0 :(得分:1)

我不知道如何解决您所遇到的特定外键重叠主键问题,但我会说我尝试过的ORM,NH最有可能与您的旧架构兼容;事实上,这是NH最大的设计目标之一。所以我认为NH是对的,而且你比其他大多数ORM更容易找到答案。