所以,我有兩個表,稱它們爲User和Item。我希望每個用戶都能夠標記任何項目(例如在Google Universe中「凝視」的內容)。現在存儲一個簡單的關係,沒有明確的ID
,從集合論的角度來看,它應該是合理的存儲這個用戶和項目之間的簡單關係。調用這個新的表UserItemFlags。該表應該有兩列;一個是用戶表的外鍵,另一個是外鍵到Item表。如果用戶U標記項目I,則表示該項目在UserItemFlags表中存在行(U, I)
。現在
,我用流利,NHibernate的表達這個問題是這樣的:我似乎無法理解與Id
映射做。理想情況下,我不會有身份證,因爲沒有比在用戶和物品之間存在或不存在這種關係更多的東西了。這種模式的一個自然結果是,表中不可能有重複的行。這是一個理想的功能。
using FluentNHibernate.Mapping;
public class UserItemFlagsMapping : ClassMap<UserItemFlags>
{
public UserItemFlagsMapping()
{
// Aaaa! I must have an Id!
References(x => x.User).Not.Nullable();
References(x => x.Item).Not.Nullable();
}
}
我很樂意爲正確的方向指出任何指針,即使他們會要求我放棄這個特定情況下的Fluent。
是的,我同意。但是流利,NHibernate的不同意。我需要調用`Id`法上`類映射<...>`的良好理解。 – 2011-01-21 09:27:46