添加约束时,NHibernate会生成不引用列的DB脚本

时间:2013-03-20 14:22:01

标签: sql-server nhibernate ddl

我有一个带有以下属性的nhibernate xml类(称为class1):

<many-to-one name="Rank" class="RankColourScheme" column="Rank_" 
property-ref="Rank" not-null="true" fetch="join"/>

列Rank_不是主键列。

当我使用nhibernate生成sql脚本来创建表时,SQL行是:

alter table dbo.Class1_  add constraint FK_Rank foreign key (Rank_) 
references dbo.RankColourScheme_

此行失败,因为约束未引用该列。

实际的sql应该是:

alter table dbo.Class1_  add constraint FK_Rank foreign key (Rank_) 
references dbo.RankColourScheme_ (Rank_)

知道我的xml出错了吗?

提前致谢,

纳迪亚

1 个答案:

答案 0 :(得分:1)

查看:NHibernate - Mapping a String Foreign Key

您需要将其定义为:

<bag name=”Inventory” table=”INVENTORY” lazy=”true”>
 <key column=”ID” property-ref=”OID” />
 <one-to-many class=”GuitarStore.Common.Inventory” />
 </bag>

这也是最初但是在nhibernate https://nhibernate.jira.com/browse/NH-1272中,它在2.1.0 Alpha1中修复。