我们在学生和教授之间的数据库(带有桥接表)中建立了一对多的关系,但在我们的网站中,我们希望将其建模为一对多的关系,即学生有一位教授。
这是我们的尝试,但它不起作用:
protected StudentMap()
{
Id(x => x.Id);
Map(x => x.Name);
Join("student_professor_selected", m =>
{
m.KeyColumn("student_professor_selected_key");
m.References(x => x.Professor);
});
}
答案 0 :(得分:0)
加入是完全不同的东西。它用于将类的一部分放入另一个表(一对一)。
您只需映射教授与学生之间的多对多关系,它始终是C#中的简单列表。
无法将其映射为从学生到教授的单个结束参考。但是你可以在一个私有财产中映射一个教授名单,并实现一个教会财产,它只返回第一个元素:
private IList<Professor> professors;
public Professor Professor { get { return professors.First(); } }
答案 1 :(得分:0)
感谢您的帮助,我的解决方案如下。在教授课上我添加了以下内容:
private IList<Professor> _professors;
public Professor Professor { get { return _professors.First(); } }
然后要映射这个我做了以下,其中professor_student_selected是用教学键映射教学键的桥表
HasManyToMany<Students>(Reveal.Member<Professor>("_professors")).Table("professor_student_selected").ChildKeyColumn("student_key").ParentKeyColumn("professor_key");