我试图进行继承映射。那里有两个
替代。另一种选择是使用JoinedSubClass
(即
弃用并给我一个警告)而另一个和更新的是
SubClassMap
。
但是我得到一个错误,我有重复的实体/对象映射。什么 可能是问题?
运行JoinedSubClass
。这是我的两个对象的代码
以及运行MappingFile
的{{1}},以后运行
带有“SubClassMap”的映射文件的代码,它不运行....
物件:
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);
}
}
但是,当我使用相同的对象执行此操作时,为什么它不会运行 用这个映射文件??
使用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
答案 0 :(得分:-1)
如果没有错误,很难说出来,但我认为您错过了KeyColumn("personQuelle_Id")
中SubclassMap
的来电。