我有RIA服務和nHibernate的組合。 nHibernate被配置爲在數據庫端使用身份。所以新的實體發送0爲id。 nHibernate的工作原理應該如此。它更新生成的密鑰表單數據庫和更新實體。RIA服務和nHibernate插入新問題
我有組合層次結構的例子。我的實體很複雜,它有兩個集合。
InvestObject
- MaterialItems
- WorkItems
我在一個單位的工作中使用這種結構。在Silverlight應用程序中獲取和顯示數據是沒有問題的。但是,如果我嘗試在MaterialItems集合添加在客戶端的多個項目,節省當我得到這個錯誤:
Submit operation failed. Invalid ChangeSet : Only one entry for a given entity instance can exist in the ChangeSet. at System.ServiceModel.DomainServices.Server.ChangeSet.ValidateChangeSetEntries(IEnumerable
1 changeSetEntries) at System.ServiceModel.DomainServices.Server.ChangeSet..ctor(IEnumerable
1 changeSetEntries)
沒有在客戶端速戰速決,只是產生一些假陰性的ID,物料。這適用於RIA,保存傳播到服務器端。但是,然後nHibernate引發錯誤,因爲它期望所有新的Ids不是給定的值()。所以這不好。
最後,我通過將所有新的Ids重置爲0來欺騙nHibernate。但是這並不能讓我開心。這是凌亂的醜陋解決方案。
請幫