なにかしら。私はここに解決策を持って座っています。2つのサブクラスを持つ1つのスーパークラスがあり、現在、JoinedSubClassを使用してこれをマッピングしていますが、このメソッドは廃止されており、ClassMapとSubClassMapが必要であると言われていますが、これを行うとAutoMappingは機能しません、そして私はそれを望んでいません。これに対する回避策はありますか?
階層は次のとおりです。
public class Tag : Entity
{
public virtual string Name {get;set;}
public virtual User User {get;set;}
}
public class RespondentTag : Tag
{
public virtual IList<Respondent> Respondents {get;set;}
}
public class ArchiveTag : Tag
{
public virtual IList<Survey> Surveys {get;set;}
}
おそらくお気づきかもしれませんが、これを階層ごとのテーブルにしたいのです。多対多のリストを持つサブクラスをマッピングします。テーブル'Tag'のように、次にTag_RespondentとTag_Archive(多対多の関係の場合)。
現在使用しているマッピングは次のとおりです。
public class TagMap : IAutoMappingOverride<Tag>
{
public void Override(AutoMapping<Tag> mapping)
{
//This is obsolete
mapping.JoinedSubClass("RespondentTagId", RespondentTagMap.AsJoinedSubClass());
mapping.JoinedSubClass("ArchiveTagId", ArchiveTagMap.AsJoinedSubClass());
}
}
public class RespondentTagMap
{
public static Action<JoinedSubClassPart<RespondentTag>> AsJoinedSubClass()
{
return part =>
part.HasManyToMany(x => x.RespondentList)
.Cascade
.SaveUpdate()
.Inverse()
.Table("Tag_Respondent");
}
}
public class ArchiveTagMap
{
public static Action<JoinedSubClassPart<ArchiveTag>> AsJoinedSubClass()
{
return part =>
part.HasManyToMany(x => x.Surveys)
.Cascade
.SaveUpdate()
.Inverse()
.Table("Tag_Archive");
}
}
誰かがこれを解決するための回避策または別の解決策について知っていますか?(自動マッピングを無効にせずに)
任意の回答をいただければ幸いです。
前もって感謝します!