C# NHibernate有一个返回null的引用

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

我使用的是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

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
,则可以解决此问题。