2010-09-12 142 views
0

我有一个班级学校和另一班班主任。现在每所学校都可以包含m个教师和一个教师可能是多个学校的一部分。但是在老师课上,我不想要一个属性来告诉我一个老师是哪个学校的一部分。执行Nhibernate一对多映射

因此,

public class School 
{ 
public virtual int Id {get;set;} 
public virtual string Name {get;set;} 
public virtual IList<Teacher> Teachers {get;set;} 
    public School() 
    { 
    Teachers=new List(); 
    } 
} 

而对于相同的映射是

public class SchoolMap:ClassMap<School> 
{ 
    public SchoolMap() 
    { 
    Id(x=>x.Id); 
    Map(x=>x.Name); 
    HasMany(x=>x.Teachers); 
    } 
} 

与教师被定义为

public class Teacher 
{ 
public virtual int Id {get;set;} 
public virtual int Name {get;set;} 
} 

,并且被定义预期的简单的映射。

现在我希望加入这些表格,以便当我创建一个School对象,然后添加教师并保存它时,我希望它被存储在映射表中,其中的列应该是以下SchoolId,TeacherId 。

现在如何在我的映射中使用此表,以便在保存学校对象时,我的老师也存储在数据库中,并检索学校对象以检索教师。

任何答案将不胜感激。

回答

0

尝试this

HasMany(x => x.Teachers).Inverse().Cascade.All();