私はclass MoneyCompositeUserType : ICompositeUserType
マッピングで次のように使用します。
public InvoiceMap()
{
Table("Invoices");
Id(x => x.Id);
Map(x => x.Customer);
Map(x => x.Number);
Map(x => x.TotalValue)
.CustomType(typeof(MoneyCompositeUserType))
.Columns.Clear()
.Columns.Add("TotalValue_Amount", "TotalValue_Currency");
}
そして、ここにクラスがあります:
public class Invoice
{
public virtual int Id { get; set; }
public virtual int Number { get; set; }
public virtual string Customer { get; set; }
public virtual Money TotalValue { get; set; }
}
値が遅延ロードされると思ったのですが、それがvirtual
正しいのですか?ただし、NullSafeGet
アイテムが読み込まれると、複合ユーザー タイプのメソッドが呼び出されます。これが私の失敗したテストです:
using (var session = NHibernateHelper.OpenSession())
{
var fromDb = session.Get<Invoice>(invoice.Id);
Assert.IsFalse(NHibernate.NHibernateUtil.IsPropertyInitialized(fromDb, "TotalValue"));
}
そのプロパティが遅延ロードされていないのはなぜですか?