下面是一些代碼,可以幫你。 我已寫入類和每個映射。 我只定義了propertys QuestionID和AnswerID。 在Question類中,您現在有一個ISet,其中包含所有參考答案。 在Answer類中,您有一個Questionfield,其中包含引用的Question。
希望這是你想要什麼(示例代碼是C#)
類的問題
public class Question
{
//other fields
private int _id;
private ISet<Answer> _answers;
//other props
public virtual int ID
{
get{ return _id; }
set{ _id = value; }
}
public virtual ISet<Answer> Answers
{
get
{
return _answers;
}
set
{
_answers = value;
}
}
}
映射的問題
<?xml version="1.0" encoding="utf-8"?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
<class name="App.Question, App" table="question">
<id name="ID" column="questionid" type="int">
<generator class="native" />
</id>
<!--Other Propertys-->
<set name="Answers" table="answer" generic="true" inverse="true">
<key column="questionId" />
<one-to-many class="App.Answer, App"/>
</set>
</class>
</hibernate-mapping>
類的答案
public class Answer
{
//other fields
private int _id;
private Question _question;
//other props
public virtual int ID
{
get{ return _id; }
set{ _id = value; }
}
public virtual Question Question
{
get
{
return _question;
}
set
{
_question = value;
}
}
}
映射爲應答
<?xml version="1.0" encoding="utf-8"?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
<class name="App.Answer, App" table="answer">
<id name="ID" column="answerid" type="int">
<generator class="native" />
</id>
<!--Other Propertys-->
<many-to-one name="Question" column="questionId" class="App.Question, App"/>
</class>
</hibernate-mapping>
哎首先感謝名單4這樣的大碼...和羚牛這麼多efforts..Can妳告訴我HW訪問兩個類堂妹說的ID的是我所面臨的問題與我目前的代碼..在那裏我不得不啓動一個查詢來比較列中包含的值 – user1274646 2012-03-22 12:24:28
好的,我希望我現在理解你。一個小例子,你有一個問題的對象。 (例如session.CreateCriteraia(typeof(Question))。Add(new EqExpression(「ID」,1))...現在你可以通過屬性'Answers'來訪問問題的答案。 。如果你已經正確映射了兩個類。 – 2012-03-22 12:28:56
可以請你通過下面的鏈接http://stackoverflow.com/questions/9792086/to-insert-a-value-in-foreign-key-in-mvc3-nihibernate 並檢查是否我做了正確與否,然後plzzz也告訴我,我應該把上面的代碼放在哪裏,像在哪個函數的Nhibernate幫助類 – user1274646 2012-03-22 13:06:51