C# NHibernate有一个返回null的引用
我使用的是NHibernate,它有一个C# NHibernate有一个返回null的引用,c#,nhibernate,fluent-nhibernate,one-to-one,C#,Nhibernate,Fluent Nhibernate,One To One,我使用的是NHibernate,它有一个Product实体,可以有0个或1个ProductStats实体 ProductMap References(x => x.Manufacturer); HasOne(x => x.Stats) .PropertyRef(x => x.Product) .Cascade.All(); References(x => x.Product); ProductStatsMap Refe
Product
实体,可以有0个或1个ProductStats
实体
ProductMap
References(x => x.Manufacturer);
HasOne(x => x.Stats)
.PropertyRef(x => x.Product)
.Cascade.All();
References(x => x.Product);
ProductStatsMap
References(x => x.Manufacturer);
HasOne(x => x.Stats)
.PropertyRef(x => x.Product)
.Cascade.All();
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
})
var products=Session.Query()//使用NHibernate.Linq
.选择(x=>new
{
x、 Manufacturer,//正确返回对象
x、 Stats,//返回null
x、 Stats.ProductStatId//正确返回ID
})
Stats
属性总是返回null,但是如果我尝试查询Stats
的属性,它工作正常,这表明映射本身是正确的。它只是拒绝作为此查询的一部分加载整个实体。使用引用映射的Manufacturer属性运行良好
为什么没有加载Stats属性,我如何解决这个问题?我也遇到过几次。我发现,如果我从一对一的关系中开始查询,它似乎可以解决问题。因此,在上面的例子中,如果您开始使用Session.Query
,然后选择Stats=x
,则可以解决此问题。