我有一個場景,用戶實體有一個國家id的列表,保持爲IList。當使用流利NHibernate和AsList()時指定主鍵
public virtual IList<int> TradeCountries { get; protected set; }
目前,這被映射爲
HasMany(x => x.TradeCountries).Element("TradeCountryId").AsList(x => x.Column("TradeCountryIndex"));
產生的表的定義如下
create table TradeCountries (
User_id INT not null,
TradeCountryId INT null,
TradeCountryIndex INT not null,
primary key (User_id, TradeCountryIndex)
)
這一切工作正常 - 但我想就TradeCountries的PK是User_id,TradeCountryId。在使用AsList()進行映射時,我似乎無法找到這樣做的方法。有任何想法嗎?
你想對你的主鍵由兩個領域? (User_id和TradeCounryId) –
爲什麼要在PK中使用TradeCountryId?唯一性約束? NHibernate使用PK中的索引,因爲這對NH來說很重要。你真的需要存儲每個contry在集合中的位置嗎? –
@OskarBerggren我想把它作爲一個列表映射,以避免映射組件時出現的'刪除所有/重新插入所有'行爲或包 –