2010-09-10 47 views
1

我有這個表:是什麼導致此成員AutoSync失敗?

create table dbo.NotificationsIn 
(
    NotificationID varchar(18) primary key, 
    ArrivalTime datetime not null default getdate() 
) 

我插入到這樣的:

public void InsertNotification(NotificationsIn notification) 
{ 
    db.NotificationsIns.InsertOnSubmit(notification); 
    db.SubmitChanges(); 
} 

其中db是一個LINQ的DataContext。

我得到下面的異常後,我插入一個新的記錄:

System.InvalidOperationException:會員自動同步失敗。爲使成員在插入後自動同步,該類型必須具有自動生成的標識或插入後數據庫未修改的鍵。

在dbml中,我設置了ArrivalTime屬性AutoGenerated = True和Auto-Sync = OnInsert。我也嘗試過自動同步=從不,但結果是一樣的。

任何想法,爲什麼我得到這個異常? 謝謝。

回答

0

您尚未提供數據庫圖層信息。
最簡單的解決方案是將NotificationID列設置爲Identity。這應該有所幫助。

+0

數據庫是sql server 2k8。我無法使NotificationID成爲身份,因爲它的價值很重要;它由外部系統提供。 – Eric 2010-09-13 18:44:12

+0

然後更好的解決方案是調用Refresh方法。 AutoSync屬性旨在用於自動生成的屬性,Refresh不具有此限制。 http://msdn.microsoft.com/en-us/library/system.data.linq.datacontext.refresh.aspx – Devart 2010-09-14 13:17:15

+0

但NotificationID的Auto-Sync屬性已設置爲從不。 ArrivalTime設置爲自動同步OnInsert,但它是自動生成的。 – Eric 2010-09-14 13:25:28

相關問題