NHibernate を使用して、非常に奇妙なデータベースのモデルを生成しようとしています。テーブル自体には表示専用の主キーがあり、実際の関係はすべて一意の列にあります。たとえば、製品 ID の主キーと一意の製品名列を持つ製品テーブルです。別のテーブル demand には、製品名の列があり、関係を定義しています。この状況が理想的ではないことはわかっていますが、どうしようもありません。
いずれにせよ、Fluent NHibrenate を使用して製品を需要にマッピングすることはできましたが、エンティティを遅延ロードさせることはできないようです。
public class Demand
{
public virtual DemandId { get; set; }
public virtual Product { get; set; }
}
public class DemandMap : ClassMap<Demand>
{
public DemandMap()
{
this.Table("Demand");
this.LazyLoad();
this.Id(x => x.DemandId);
this.References(x => x.Product).PropertyRef(x => x.ProductName).LazyLoad();
}
}
遅延読み込みが機能しない理由について誰か洞察がありますか? SQLプロファイラーで需要とともに製品がフェッチされているのを見ることができるので、そうではないことはわかっています.