Asp.net mvc 3 NHibernate有许多自动映射未加载填充列表

Asp.net mvc 3 NHibernate有许多自动映射未加载填充列表,asp.net-mvc-3,nhibernate,fluent-nhibernate,automapping,Asp.net Mvc 3,Nhibernate,Fluent Nhibernate,Automapping,我已经通过自动映射建立了多对多关系。现在,保存和更新工作正常,但是当我随后获得实体时,折扣组没有在折扣日加载。我一辈子都搞不明白为什么折扣组列表总是空的,即使它在数据库中都是正确的 我看到过关于使用ISet而不是IList的建议,但是在我的案例中,它似乎没有任何区别,neiter确实使用了ISet .Not.LazyLoad() 在映射中。删除AsBag()和AsSet()也没有什么区别 实体 public class DiscountDay { public virtual DayOf

我已经通过自动映射建立了多对多关系。现在,保存和更新工作正常,但是当我随后获得实体时,折扣组没有在折扣日加载。我一辈子都搞不明白为什么折扣组列表总是空的,即使它在数据库中都是正确的

我看到过关于使用ISet而不是IList的建议,但是在我的案例中,它似乎没有任何区别,neiter确实使用了ISet .Not.LazyLoad() 在映射中。删除AsBag()和AsSet()也没有什么区别

实体

public class DiscountDay
{
    public virtual DayOfWeek DayOfWeek { get; set; }

    public virtual Discount Discount { get; set; }

    private readonly IList<DiscountGroup> _discountGroups = new List<DiscountGroup>();

    public virtual IEnumerable<DiscountGroup> DiscountGroups
    {
        get { return _discountGroups; }
        set { }
    }
}

public class DiscountGroup
{
    public virtual string Name { get; set; }

    private readonly IList<DiscountDay> _discountDay = new List<DiscountDay>();

    public virtual IEnumerable<DiscountDay> DiscountDay 
    {
        get { return _discountDay; }
    }
}
公共课折扣日
{
公共虚拟DayOfWeek DayOfWeek{get;set;}
公共虚拟折扣{get;set;}
私有只读IList_折扣组=新列表();
公共虚拟可数折扣组
{
获取{return\u折扣组;}
集合{}
}
}
公共课折扣组
{
公共虚拟字符串名称{get;set;}
私有只读IList_discountDay=新列表();
公共虚拟IEnumerable折扣日
{
获取{return\u折扣日;}
}
}
映射

public class DiscountDayOverride : IAutoMappingOverride<DiscountDay>
{
    public void Override(AutoMapping<DiscountDay> mapping)
    {
        mapping.HasManyToMany( x => x.DiscountGroups )
            .AsSet()
            .Cascade
            .SaveUpdate();
        mapping.Cache.ReadWrite();
    }
}

public class DiscountGroupOverride : IAutoMappingOverride<DiscountGroup>
{
    public void Override(AutoMapping<DiscountGroup> mapping)
    {
        mapping.HasManyToMany( x => x.DiscountDay )
            .AsBag()
            .Inverse();
        mapping.Cache.ReadWrite();
    }
}
公共类折扣日覆盖:IAutoMappingOverride
{
公共无效替代(自动映射)
{
mapping.HasManyToMany(x=>x.DiscountGroups)
1.资产()
大量
.SaveUpdate();
mapping.Cache.ReadWrite();
}
}
公共类折扣GroupOverride:IAAutoMappingOverride
{
公共无效替代(自动映射)
{
mapping.HasManyToMany(x=>x.DiscountDay)
.AsBag()
.Inverse();
mapping.Cache.ReadWrite();
}
}

好吧,我是个十足的裸体主义者。折扣日实体上折扣组的空集导致了问题。出于某种原因,我掩盖了这一点,只是不认为空一套会有什么作用

更新代码:

public virtual IEnumerable<DiscountGroup> DiscountGroups
{
    get { return _discountGroups; }
}
公共虚拟IEnumerable折扣组
{
获取{return\u折扣组;}
}

好吧,我是个十足的裸体主义者。折扣日实体上折扣组的空集导致了问题。出于某种原因,我掩盖了这一点,只是不认为空一套会有什么作用

更新代码:

public virtual IEnumerable<DiscountGroup> DiscountGroups
{
    get { return _discountGroups; }
}
公共虚拟IEnumerable折扣组
{
获取{return\u折扣组;}
}