Fluent nhibernate 两个班互相参考,怎么办。懒散在流利的nhibernate

Fluent nhibernate 两个班互相参考,怎么办。懒散在流利的nhibernate,fluent-nhibernate,lazy-loading,Fluent Nhibernate,Lazy Loading,我有两节课 public class ProInfo { public ProInfo() { ProPrices = new List<ProPrice>(); } public virtual Guid ProID { get; set; } public virtual string ProCate { get; set; } public virtual string Name { get; set; }

我有两节课

 public class ProInfo
{
    public ProInfo()
    {
        ProPrices = new List<ProPrice>();
    }
    public virtual Guid ProID { get; set; }
    public virtual string ProCate { get; set; }
    public virtual string Name { get; set; }
    public virtual string Unit { get; set; }
    public virtual string PicName { get; set; }
    public virtual string Memo { get; set; }
    public virtual bool DeleteFlag { get; set; }
    public virtual DateTime LastUpDateTime { get; set; }
    public virtual IList<ProPrice> ProPrices { get; set; }

}

 public class ProPrice
{
    public virtual int Id { get; set; }
    public virtual AreaInfo AreaInfo { get; set; }
    public virtual ProInfo ProInfo { get; set; }
    public virtual Decimal Price { get; set; }


}
公共类ProInfo
{
公共项目信息()
{
ProPrices=新列表();
}
公共虚拟Guid ProID{get;set;}
公共虚拟字符串进程{get;set;}
公共虚拟字符串名称{get;set;}
公共虚拟字符串单元{get;set;}
公共虚拟字符串PicName{get;set;}
公共虚拟字符串Memo{get;set;}
公共虚拟bool DeleteFlag{get;set;}
公共虚拟日期时间LastUpDateTime{get;set;}
公共虚拟IList属性{get;set;}
}
公营房屋
{
公共虚拟整数Id{get;set;}
公共虚拟区域信息区域信息{get;set;}
公共虚拟ProInfo ProInfo{get;set;}
公共虚拟十进制价格{get;set;}
}
映射代码为:

    public ProInfoMap()
    {
        Id(x => x.ProID);
        Map(x => x.DeleteFlag);
        Map(x => x.Name);
        Map(x => x.PicName);
        Map(x => x.ProCate);
        Map(x => x.Unit);
        Map(x => x.LastUpDateTime);
        HasMany<ProPrice>(x => x.ProPrices);


    }

 public ProPriceMap()
   {
       Id(x => x.Id);
       Map(x => x.Price);
       References<ProInfo> (x => x.ProInfo);
       References<AreaInfo>(x => x.AreaInfo);
   }
publicproinfomap()
{
Id(x=>x.ProID);
Map(x=>x.DeleteFlag);
Map(x=>x.Name);
Map(x=>x.PicName);
Map(x=>x.ProCate);
Map(x=>x.Unit);
Map(x=>x.LastUpDateTime);
有许多(x=>x.ProPrices);
}
公共专有地图()
{
Id(x=>x.Id);
地图(x=>x.Price);
参考文献(x=>x.ProInfo);
参考文献(x=>x.AreaInfo);
}

我想要的是禁用proprices的lazyload(),这样我就可以从数据库中获取产品的所有价格。但是,当我将onetomany更改为:
HasMany(x=>x.ProPrices)。Not.LazyLoad()
,它会导致无限循环。我错过了什么?

我不知道循环的确切来源,但您的双向关联可能会导致这种情况。您应该将一侧声明为Inverse()。这只能在ProInfoMap中完成,因为它是一种具有双向关联的一对多关系:

HasMany<ProPrice>(x => x.ProPrices).Inverse().Not.LazyLoad();
HasMany(x=>x.ProPrices).Inverse().Not.LazyLoad();
试试看。它可以消除无限循环