我有一个这样定义的抽象实体基类:
public abstract class SessionItem : Entity
{
public virtual Session Session { get; set; }
}
另外,我正在使用自动映射:
private AutoPersistenceModel CreateAutomappings()
{
return AutoMap
// configuration
.Conventions.Add(DefaultCascade.All())
// more configuration
}
SessionItem
有几个派生类/表,我想覆盖所有的级联策略。我尝试了以下方法:
public class SessionItemAutommapingOverride : IAutoMappingOverride<SessionItem>
{
public void Override(AutoMapping<SessionItem> mapping)
{
mapping.References(x => x.Session).Cascade.None();
}
}
但不幸的是,没有调用覆盖,因为SessionItem
它是抽象的(并且没有映射)。我更愿意避免为每个子类覆盖它(使用 IAutoMappingOverride)。
有什么方法可以覆盖多种类型的级联,而无需为每种类型使用 IAutoMappingOverride<>?