次のように定義された抽象エンティティ基本クラスがあります。
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<>を使用せずに、複数のタイプのカスケードをオーバーライドする方法はありますか?