我有一个场景,用户实体有一个国家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我想把它作为一个列表映射,以避免映射组件时出现的'删除所有/重新插入所有'行为或包 –