2009-02-27 15 views
15

NHibernate 2 ile yapılan kırılma değişikliklerinden birini biliyorum. * NHibernate.Nullables'ın artık desteklenmediği. Bu nedenle, eşleme DateTime'ı eşlemek için eşleme dosyanızda ne kullanırsınız? yazın? yani İçin .:NHibernate 2. * dosyaları eşleme: null tarihi DateTime (DateTime?) Nasıl tanımlanır?

Anlaşılır çalışmaz: desteklenen

<property name="CreateDate" column="CreateDate" type="DateTime?" not-null="false" /> 

Ve artık:

<property name="ModifiedDate" column="ModifiedDate" type="Nullables.NHibernate.NullableDateTimeType, Nullables.NHibernate" not-null="false"/> 

Bu kadar bariz olduğunu biliyoruz, ama bunu bulamıyorum!

Soru şu kadar basit: NHibernate, söz konusu sınıfa yansıyacak ve mülkün yansıtılan türünün DateTime olduğunu keşfedecek? hepsi kendi başına.

Teşekkürler @Justice!

cevap

28
<property name="CreatedDate" /> 
  • NHibernate söz konusu sınıfın üzerine yansıtmak ve tip yansıyan özellik kendi başına DateTime? tüm olduğunu keşfedeceksiniz.
  • NHibernate, aksi belirtilmedikçe, sütun adının varsayılan olarak özellik adıyla aynı olduğunu varsayacaktır. Aksi belirtilmediği sürece, herhangi bir mülkün geçersiz sayılabileceğini varsayalım (not-null="false"). Eğer gerçekten istiyorsan

, bu ... gibi

<property name="CreatedDate" type="System.Nullable`1[[System.DateTime, mscorlib]], mscorlib" /> 
+0

Çok teşekkürler bir şey olmalıdır. İki ve üç numaralı numarayı biliyorum, ama ilkini hiç görmediğime inanamıyorum - bu kadar basit, ha? – Ted

+0

FWIW, bu, haritalama nitelikleri gibi bir şey kullanarak çok daha kolay bir iştir. Burada sadece [[Property (Name = "CreatedDate", TypeType = typeof (DateTime?))] ' –