我有一個使用Ria Services的Silverlight應用程序。我現在希望運行一個不同的客戶端應用程序(控制檯應用程序),它將在服務器上執行某些預定的日期結束操作。爲了做到這一點並避免重複,我決定使用SOAP描述Ria Services DomainContext作爲Web服務,如here和here所述,以便我可以重新使用Ria Services中設置的實體和關係,而不必將其複製到我的客戶。使用Ria服務SOAP端點從客戶端插入記錄時出現「無效ChangeSet:每個條目必須唯一」錯誤
在我的客戶端中,我成功添加了服務引用,並且我成功地能夠查詢Web服務以獲取結果。我也能夠爲單個新數據庫條目執行「插入」語句。不幸的是,當我將一個以上的項目添加到要更新的條目集時,我收到一條錯誤「無效的ChangeSet:每個條目必須是唯一的」。
下面是我的代碼:
DomainServiceSoapClient service = new DomainServiceSoapClient();
List<DomainServices.ChangeSetEntry> changesToSave = new List<DomainServices.ChangeSetEntry>();
foreach (string name in myListOfNames)
{
Person newPerson = new Person() {Name = name};
DomainServices.ChangeSetEntry entry = new DomainServices.ChangeSetEntry { Entity = newPerson, Operation = DomainServices.DomainOperation.Insert };
changesToSave.Add(entry);
}
service.SubmitChanges(changesToSave.ToArray<DomainServices.ChangeSetEntry>());
上的代碼的最後一行出現的錯誤。 作爲一個測試,如果我用下面的代碼替換這最後一行(這意味着我只有我提交的數組中有一個條目)它的工作原理,我沒有得到錯誤。
service.SubmitChanges(new DomainServices.ChangeSetEntry[] {changesToSave.ToArray<DomainServices.ChangeSetEntry>()[0]});
如何解決此問題,以便SubmitChanges在需要提交多個條目時有效?
你的桌子上有主鍵嗎? –
是的,我願意。整個Silverlight應用程序運行良好,Ria Services的所有功能都來自Silverlight。只有從域服務Soap客戶端纔會發生此錯誤。 – Stanley
誰可以低估我的問題,請給出一個指示,說明爲什麼他們低估了這個問題,讓我有機會糾正錯誤,並且/或提供更多信息使問題變得可接受?如果它只是表現爲一個downvoted問題,我冒着沒有人看這個問題的風險,我真的需要一些輸入... – Stanley