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();
}
}