W mojej mapie mam:Dlaczego Fluent NHibernate ignoruje moje unikalne ograniczenie na komponencie?
Component(
x => x.ExposureKey,
m => {
m.Map(x => x.AsOfDate).Not.Nullable();
m.Map(x => x.ExposureId).Length(30).Not.Nullable();
}
).Unique();
Odpowiednie wyjście z HBM jest
<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>
który jest wyraźnie brakuje unique="true"
z definicji component
.
Dlaczego tak się dzieje?
Spróbuję nowszej wersji (używam kompilacji 685, a obecna to 694). Myślę, że "SetAttribute" został usunięty. Wygenerowany SQL nie ma zestawu właściwości "unikalny" (i nie powinien, ponieważ nie ma go w odwzorowaniu!). – jason
Zaktualizowano do najnowszej wersji (694). Wciąż nie ma wyjścia. – jason
@Jason: To jest dziwne ++ i mój VS w domu działa jak szalony. Mam nadzieję, że otrzymasz odpowiedź, zanim spróbuję replikować to w pracy (za około 12 godzin). Co to jest, MSSQL/MySQL? – rebelliard