2
對文字牆請不要TLDR。 我有一個非常簡單的對象模型,基本上它是HasMany上的FNH映射覆蓋
public class Colony
{
public virtual IList<Ant> Ants { get; set; }
}
public class Ant
{
public bool Dead { get; set }
public virtual IList<Egg> Eggs { get; set; }
}
public class Egg
{
public bool Dead { get; set }
public virtual int IncubationPeriod { get; set; }
}
你的想法。所以我宣佈了兩個映射覆蓋。
public class ColonyMappingOverride : IAutoMappingOverride<Colony>
{
public void Override(AutoMapping<Colony> mapping)
{
mapping.HasMany(c => c.Ants).Where(x => !x.Dead);
}
}
public class AntMappingOverride : IAutoMappingOverride<Ant>
{
public void Override(AutoMapping<Ant> mapping)
{
mapping.HasMany(c => c.Eggs).Where(x => !x.Dead);
}
}
因此,當我從數據庫中獲取數據時,最終導致數據不一致。
例如:
Colony.Ants不包含任何死蟻(如預期),然而Colony.Ants [0] .Eggs包含所有雞蛋......死或沒有。
如果我打電話給Session.Refresh(Colony.Ants [0]),死蛋就會被刪除。
任何人都知道爲什麼延遲加載會忽略nts映射覆蓋的Where子句?
做的結果,如果你刪除重寫的改變對我的作品? – Mert
不,唯一發生的是當我執行session.refresh它不再刪除死蛋。 – Stewert
你能確定你的覆蓋運行配置http://stackoverflow.com/questions/6413767/can-auto-mappings-conventions-work-with-mapping-overrides – Mert