1
我有通过AutoMapping设置的多对多关系。现在,保存和更新按预期正常工作,但DiscountGay并未在DiscountDay中加载,之后再获取实体。我无法理解为什么_discountGroups列表总是空的,尽管它在数据库中都是正确的。NHibernate HasManyToMany自动映射不在加载列表
我已经看到了有关使用ISet的,而不是IList的但它似乎并没有使我的情况下,任何的区别,neiter不使用 .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; }
}
}
的映射
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();
}
}