Dans ma carte J'ai:Pourquoi Fluent NHibernate ignore-t-il ma contrainte unique sur un composant?
Component(
x => x.ExposureKey,
m => {
m.Map(x => x.AsOfDate).Not.Nullable();
m.Map(x => x.ExposureId).Length(30).Not.Nullable();
}
).Unique();
La sortie correspondante de l'HBM est
<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>
qui manque clairement unique="true"
de la définition component
.
Pourquoi cela se produit-il?
Je vais essayer une version plus récente (j'utilise le build 685 alors que le courant est de 694). Je pense que SetAttribute a été supprimé. Le SQL généré n'a pas le jeu de propriétés 'unique' (et il ne devrait pas le faire puisqu'il n'est pas dans le mapping!). – jason
Mise à jour vers la dernière version (694). Toujours pas aller. – jason
@Jason: C'est bizarre ++ et mon VS à la maison agit comme un fou. J'espère que vous obtiendrez une réponse avant d'essayer de reproduire cela au travail (dans environ 12 heures). Qu'est-ce que c'est, MSSQL/MySQL? – rebelliard