我有以下結構:正確的NHibernate映射爲特定方案(一到許多/一個對一)
User has many books in his history
其被翻譯爲以下
class User { ICollection<Book> History } // C#
User -> UserHistory (UserId, BookId) -> Book // DB
現在我想添加日期到歷史記錄,創建以下類結構:
class User { ICollection<Read> History }
class Read { Book Book, Date At }
,並保持DB模式幾乎沒有變化
User -> UserHistory (UserId, BookId, At) -> Book
我要地圖Read
到UserHistory
的問題是:
- 我應該在
Read
映射,id
使用?UserHistory
主鍵是(UserId, BookId)
。 NH需要id
嗎? UserHistory -> Book
似乎是one-to-one
的情況。 在這種情況下如何在UserHistory
中指定BookId
列名? 我在one-to-one
上看不到列屬性(並且我有理由明確列名)。
謝謝,你說得對多對一。我認爲這些類型關係的標準命名與對象POV有些混淆。 – 2009-10-20 18:43:24