Nhibernate 他有很多遗传 public class-LiteratureCourceMap:ClassMap { 公共文学地图() { 表(“Cource”); ID(a=>a.CourceId,“CourceId”); Map(a=>a.CourceName,“CourceName”); 加入(“文学联盟”,a=>{ a、 KeyColumn(“CourceId”); }); } }

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

绘图和Internet的相同映射

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);
  }
}