gpt4 book ai didi

nhibernate - 为什么 Fluent NHibernate 会忽略我对组件的唯一约束?

转载 作者:行者123 更新时间:2023-12-03 17:59:53 25 4
gpt4 key购买 nike

在我的 map 中,我有:

Component(
x => x.ExposureKey,
m => {
m.Map(x => x.AsOfDate).Not.Nullable();
m.Map(x => x.ExposureId).Length(30).Not.Nullable();
}
).Unique();

HBM 的相关输出是
<component name="ExposureKey" insert="true" update="true" optimistic-lock="true" class="Some.Namespace.CreditExposureKey, Some.Namespace, Version=0.0.0.0, Culture=neutral, PublicKeyToken=aaaaaaaaaaaaaaaa">
<property name="AsOfDate" type="System.DateTime, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<column name="AsOfDate" not-null="true"/>
</property>
<property name="ExposureId" type="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<column name="ExposureId" length="30" not-null="true"/>
</property>
</component>

显然缺少 unique="true"来自 component定义。

为什么会这样?

最佳答案

您使用的是最新版本的 Fluent NHibernate 吗?根据 James Gregory (流利的 NHibernate 贡献者),它应该可以工作。

// Else, try this hack:
Component(x => x.ExposureKey, m =>
{
m.Map(x => x.AsOfDate).Not.Nullable();
m.Map(x => x.ExposureId).Length(30).Not.Nullable();
}).SetAttribute("unique", "true");

检查生成的 SQL 是否确实具有 Unique 也很好。即使 hbm 映射文件没有设置属性(可能是一个小错误)。

关于nhibernate - 为什么 Fluent NHibernate 会忽略我对组件的唯一约束?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3901553/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com