0
상속 매핑을 시도했습니다. 대안이 두 개 있습니다. 하나의 대안은 JoinedSubClass
(즉, 이 사용 중지되었으며 나에게 경고를 함)이고 다른 하나는 SubClassMap
입니다.Fluent NHibernate Mapping 문제 (오버라이드)
하지만 중복 엔티티/개체 매핑이있는 오류가 발생합니다. 무엇이 일까요?
JoinedSubClass
으로 실행됩니다.
public class Person {
public virtual int Id { get; private set; }
public virtual string Vorname { get; set; }
public virtual string Nachname { get; set; }
public virtual string Email { get; set; }
public virtual Adresse Adresse { get; set; }
public Person() {
}
}
public class PersonQuelle : Person, IQuelle {
public virtual string Beschreibung { get; set; }
public virtual Institution Institution { get; set; }
public virtual IList<MediaDatei> MediaDateien { get; set; }
public PersonQuelle() {
MediaDateien = new List<MediaDatei>();
}
public virtual void HinzufuegenMediaDatei(MediaDatei mediaDatei) {
mediaDatei.PersonQuelle = this;
MediaDateien.Add(mediaDatei);
}
public virtual void LoeschenMediaDatei(MediaDatei mediaDatei)
{
mediaDatei.PersonQuelle = null;
MediaDateien.Remove(mediaDatei);
}
}
: 여기 내 두 객체의 의 코드 및 실행
JoinedSubClass
와
MappingFile
있으며, 나중에 는 ....
객체 실행되지 않습니다 "SubClassMap"내 매핑 파일의 코드가있다
매핑 파일 :
public class PersonMap : ClassMap<Person> {
public PersonMap() {
Id(x => x.Id);
Map(x => x.Vorname);
Map(x => x.Nachname);
Map(x => x.Email);
References(x => x.Adresse);
JoinedSubClass<PersonQuelle>("personQuelle_Id", m => {
m.Map(c => c.Beschreibung);
m.References(c => c.Institution);
m.HasMany(c => c.MediaDateien).Inverse().Cascade.All();
});
JoinedSubClass<MMAdminBenutzer>("mmAdminBenutzer_Id", m =>
{
m.Map(c => c.Kuerzel);
m.Map(c => c.Passwort);
m.Map(c => c.Benutzerrolle);
m.HasMany(c => c.MediaDateien).Inverse().Cascade.All();
m.HasMany(c => c.Kategorien).Inverse().Cascade.All();
});
}
}
하지만이 매핑 파일을하지만 같은 객체와 그렇게 할 때 실행되지 않는 이유 ?? SubClassMap
와
매핑 파일 :
public class PersonMap : ClassMap<Person> {
public PersonMap() {
Id(x => x.Id);
Map(x => x.Vorname);
Map(x => x.Nachname);
Map(x => x.Email);
References(x => x.Adresse);
}
}
public class PersonQuelleMap : SubclassMap<PersonQuelle>
{
PersonQuelleMap()
{
Map(c => c.Beschreibung);
References(c => c.Institution);
HasMany(c => c.MediaDateien).Inverse().Cascade.All();
}
}