Nhibernate 他有很多遗传 public class-LiteratureCourceMap:ClassMap { 公共文学地图() { 表(“Cource”); ID(a=>a.CourceId,“CourceId”); Map(a=>a.CourceName,“CourceName”); 加入(“文学联盟”,a=>{ a、 KeyColumn(“CourceId”); }); } }
绘图和Internet的相同映射Nhibernate 他有很多遗传 public class-LiteratureCourceMap:ClassMap { 公共文学地图() { 表(“Cource”); ID(a=>a.CourceId,“CourceId”); Map(a=>a.CourceName,“CourceName”); 加入(“文学联盟”,a=>{ a、 KeyColumn(“CourceId”); }); } },nhibernate,fluent-nhibernate,fluent-nhibernate-mapping,Nhibernate,Fluent Nhibernate,Fluent Nhibernate Mapping,绘图和Internet的相同映射 public class LiteratureCourceMap:ClassMap<Literature> { public LiteratureCourceMap() { Table("Cource"); ID(a=>a.CourceId,"CourceId"); Map(a=>a.CourceName,"CourceName"); Join("Liter
public class LiteratureCourceMap:ClassMap<Literature>
{
public LiteratureCourceMap()
{
Table("Cource");
ID(a=>a.CourceId,"CourceId");
Map(a=>a.CourceName,"CourceName");
Join("LiteratureCource",a=>{
a.KeyColumn("CourceId");
});
}
}
public class StudentMap:ClassMap
{
公共学生地图()
{
表(“学生”);
ID(a=>a.StudentId,“StudentId”);
Map(a=>a.StudentName,“StudentName”);
HasManyToMany(a=>a.InternetCources).Table(“studentcources”)。
ParentKeyColumn(“StudentId”)。
ChildKeColumn(“CourceId”)。
Cascade.All();
HasManyToMany(a=>a.DrawingCources).Table(“StudentCource”)。
ParentKeyColumn(“StudentId”)。
ChildKeColumn(“CourceId”)。
Cascade.All();
HasManyToMany(a=>a.LiteratureCources).Table(“studentcources”)。
ParentKeyColumn(“StudentId”)。
ChildKeColumn(“CourceId”)。
Cascade.All();
}
}
现在,如果insert data正常工作,数据将正确地存储在相应的表中
然而,如果试图获取数据,就会出现问题
假设插入2个文献库和1个互联网库。
如果从表中获取数据,我有3条文献记录(2条记录填写,1条为空或空)和3条互联网记录(1条填写,2条为空)。请帮我更正映射看来,NHibernate总是从Cource表中获取,因为有主键。您应该尝试子类映射。请参见此示例:
public class StudentMap:ClassMap<Student>
{
public StudentMap()
{
Table("Student");
ID(a=>a.StudentId,"StudentId");
Map(a=>a.StudentName,"StudentName");
HasManyToMany(a=>a.InternetCources).Table("StudentCource").
ParentKeyColumn("StudentId").
ChildKeColumn("CourceId").
Cascade.All();
HasManyToMany(a=>a.DrawingCources).Table("StudentCource").
ParentKeyColumn("StudentId").
ChildKeColumn("CourceId").
Cascade.All();
HasManyToMany(a=>a.LiteratureCources).Table("StudentCource").
ParentKeyColumn("StudentId").
ChildKeColumn("CourceId").
Cascade.All();
}
}
公共类CourceMap:ClassMap
{
公共地图()
{
Id(x=>x.CouerceId);
Map(x=>x.CourceName);
}
}
公共类DrawingMap:子类映射
{
公共绘图地图()
{
Map(x=>x.DrawingType);
}
}
请参阅以下内容以进一步阅读:
public class LiteratureCourceMap:ClassMap<Literature>
{
public LiteratureCourceMap()
{
Table("Cource");
ID(a=>a.CourceId,"CourceId");
Map(a=>a.CourceName,"CourceName");
Join("LiteratureCource",a=>{
a.KeyColumn("CourceId");
});
}
}
public class StudentMap:ClassMap<Student>
{
public StudentMap()
{
Table("Student");
ID(a=>a.StudentId,"StudentId");
Map(a=>a.StudentName,"StudentName");
HasManyToMany(a=>a.InternetCources).Table("StudentCource").
ParentKeyColumn("StudentId").
ChildKeColumn("CourceId").
Cascade.All();
HasManyToMany(a=>a.DrawingCources).Table("StudentCource").
ParentKeyColumn("StudentId").
ChildKeColumn("CourceId").
Cascade.All();
HasManyToMany(a=>a.LiteratureCources).Table("StudentCource").
ParentKeyColumn("StudentId").
ChildKeColumn("CourceId").
Cascade.All();
}
}
public class CourceMap : ClassMap<Cource>
{
public CourceMap()
{
Id(x => x.CouerceId);
Map(x => x.CourceName);
}
}
public class DrawingMap : SubclassMap<Cource>
{
public DrawingMap()
{
Map(x => x.DrawingType);
}
}