5

Ben: HBM tarafındanFluent NHibernate, bileşen üzerindeki benzersiz kısıtlama neden yok sayılıyor? Benim haritasında

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

ilgili çıkış açıkça component tanımından unique="true" eksik

<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> 

olduğunu.

Bu neden oluyor?

cevap

0

En son Fluent NHibernate sürümünü mi kullanıyorsunuz? James Gregory (Fluent NHibernate contributor) 'a göre çalışması gerekir.

// 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"); 

Ayrıca oluşturulan SQL aslında hbm eşleme dosyaları (bir küçük hata olabilir) bile set Unique özelliği olmadığını kontrol etmek iyi olurdu.

+0

Daha yeni bir sürümünü deneyeceğim (684 numaralı yapıyı kullanırken 694 kullanırken). Ben 'SetAttribute' kaldırıldı düşünüyorum. Oluşturulan SQL '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ''' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ile sahip değildir. – jason

+0

En son yapıya güncellendi (694). Hala yok. – jason

+0

@ Jason: Bu garip ++ ve evde VS'm deliriyor. Umarım işte çoğaltmayı denemeden önce bir cevap alırsınız (yaklaşık 12 saat içinde). Nedir bu, MSSQL/MySQL? – rebelliard

İlgili konular