我正在使用NHibernate并拥有一个Product
实体,该实体可以包含0或1个ProductStats
实体。
ProductMap
References(x => x.Manufacturer);
HasOne(x => x.Stats)
.PropertyRef(x => x.Product)
.Cascade.All();
ProductStatsMap
References(x => x.Product);
数据库
Product
+ManufacturerId
ProductStats
+ProductStatId
+ProductId
我使用以下查询尝试加载产品及其相关ProductStats列表(如果存在)。
var products = Session.Query<Product>() // Using NHibernate.Linq
.Select(x => new
{
x.Manufacturer, // Returns object correctly
x.Stats, // Returns null
x.Stats.ProductStatId // Returns ID correctly
})
Stats
属性始终返回null,但是如果我尝试查询Stats
的属性,它可以正常工作,这表明映射本身是正确的。它只是拒绝加载整个实体作为此查询的一部分。使用References
映射的Manufacturer属性工作正常。
为什么没有加载Stats属性,我该如何解决?