En mi mapa que tengo:¿Por qué es NHibernate Fluent haciendo caso omiso de mi restricción única en un componente?
Component(
x => x.ExposureKey,
m => {
m.Map(x => x.AsOfDate).Not.Nullable();
m.Map(x => x.ExposureId).Length(30).Not.Nullable();
}
).Unique();
La salida relevante desde el HBM es
<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>
que está claramente ausente unique="true"
de la definición component
.
¿Por qué sucede esto?
Probaré una versión más reciente (Estoy usando build 685 mientras que la actual es 694). Creo que 'SetAttribute' ha sido eliminado. El SQL generado no tiene el conjunto de propiedades 'unique' (¡y no debería ser así porque no está en la asignación!). – jason
Actualizado a la última versión (694). Todavía no ir. – jason
@Jason: Esto es extraño ++ y mi VS en casa está actuando loco. Espero que obtenga una respuesta antes de intentar replicar esto en el trabajo (en aproximadamente 12 horas). ¿Qué es esto, MSSQL/MySQL? – rebelliard