Zastanawiam się nad czymś. Siedzę tutaj z rozwiązaniem tam Mam 1 nadklasę, która ma 2 podklasy i obecnie mapuję to używając JoinedSubClass, ale dostaję, że ta metoda jest przestarzała, i mówi, że powinienem ClassMap i SubClassMap, ale jeśli to zrobię AutoMapping nie działa, a ja tego nie chcę. Czy istnieje jakieś obejście tego problemu?Fluent NHibernate ŁączonySubClass jest przestarzały
Oto hierarchia:
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;}
}
Jak zapewne zorientowali się, chcę to być tabela za hierarchii mapowanie z podklasy z list, które wiele-do-wielu. Podobnie jak tabela "Tag", a następnie Tag_Respondent i Tag_Archive (dla relacji wielu do wielu).
Oto odwzorowanie że obecnie używam:
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");
}
}
Czy ktoś wie o obejście lub inne rozwiązanie do rozwiązywania tego? (Bez wyłączania automatyzacji)
Wszelkie odpowiedzi zostaną docenione.
Z góry dziękuję!
Czy zdarzyło Ci się, że to działa? Pracuję nad podobnymi problemami, próbując uzyskać pracę z mieszaną tabelą na podklasę i tabelą na klasę. – rbellamy
Czy nadal masz ten problem? Z której wersji FNH korzystałeś? – Firo