これは、NHibernate での一方向の 1 対 1 マッピングの問題です。
Student.cs
public class Student
{
public int ID { get; set; }
public int Roll { get; set; }
public int RegNo { get; set; }
public string Name { get; set; }
public StudentDetail StudentDetail { get; set; }
}
StudentDetail.cs
public class StudentDetail
{
public int ID { get; set; }
public string Father { get; set; }
public string Mother { get; set; }
}
これらのクラス (hbm マッピング ファイルはどのように見えるか) を次のような 1 対 1 の関係にマップするにはどうすればよいですか?
クラスとテーブルをよく見てください。
<many-to-one>
または のどこにタグを付けることができますStudent.hbm.xml
かStudentDetail.hbm.xml
? に入れたら、別のテーブルにあるのでStudent.hbm.xml
、どうすれば列をマッピングできますか?StudentDetail.StudentID
したがって、このマッピング:
<class name="Student" table="Student">
<id name="ID" column="ID">
<generator class="native"/>
</id>
.......
<many-to-one class="StudentDetail" name="StudentDetail" column="StudentID" unique="true" cascade="all" />
</class>
次の例外が生成されます。
{"Invalid column name 'StudentID'."}
一方、<many-to-one>
には配置できませんStudentDetail.hbm.xml
。タイプStudentDetail.cs
のプロパティは含まれていませんStudent
。
タグは使え<one-to-one>
ますか?はいの場合、またはのどこに配置すればよいですStudent.cs
かStudentDetail.cs
?また、どのように構成すればよいですか?