正如问题所述,是否有可能以流利的nhibernate(或非流利的方式)映射复合键,其中复合中使用的两个字段之一是身份字段?

我有一张表,其中主键的一部分是标识字段,另一部分是租户标识。这是一个遗留数据库,其中复合键全部用作外键,因此修改数据库非常重要。

谢谢!

有帮助吗?

解决方案

如果它真的是一个标识列,那么它保证每个记录都是唯一的,对吗?

如果是这样,您可以完全忽略租赁ID以进行映射。您的身份字段在主表中将是唯一的 - 并且您的外键引用将包含此唯一ID,因此租赁ID实际上是无关紧要的。

NHibernate并不关心您是否正确地映射数据库模式。我已经使用遗留数据库之前我已经在非键列上定义了一个唯一约束,然后告诉NHibernate使用它作为主键 - 它可以工作,它可以巧妙地回避各种可怕的复合键关系映射。

想一想。反直觉,但它可能会奏效。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top