0

要在SQL Server CE中插入一條記錄,需要調用..InsertOnSubmit(),傳遞表示要插入記錄的類實例,然後傳遞.SubmitChanges();SQL Server CE是否需要/提供「UpdateOnSubmit()」?

我是否需要類似的結構來更新記錄?我有這樣的:

SQLCEDataContext sqlcedc = new SQLCEDataContext(SQLCEDataContext.DBConnectionString); 
var invitations = (from SQLCEDataDefinition invitation in 
         sqlcedc.SQLCEDataDefinitions 
        where invitation.SenderID == senderID 
        select invitation).SingleOrDefault(); 
invitations.SenderDeviceID = senderDeviceID; 
sqlcedc.SubmitChanges(); 

..但不知道如果我需要InsertOnSubmit(的模擬) - 但沒有UpdateOnSubmit(),我可以看到。我是否需要用戶InsertOnSubmit(),即使這是一個更新操作,而不是插入操作?

窗口電話-8的SQL服務器CE更新LINQ

回答

2

不,你沒有一個UpdateOnSubmit(),你不能使用InsertOnSubmit()來更新您的記錄。

您需要首先獲取數據,更新你的財產,然後使用的SubmitChanges()

+0

督察 - 就像我做的話,對不對?如果更新時不需要InsertOnSubmit(),似乎有點奇怪。 –

+0

是的,沒錯。事實上,LINQ to SQL會自動更改跟蹤,因此它已經知道您對通過DataContext檢索到的對象所做的更改。暗示在SubmitChanges期間更新對象的請求。 – Fabrice

+0

有一個解決方法。看到我的答案[這裏](http://stackoverflow.com/a/40754837/450913)。 – orad

1

嘗試這樣的:

SQLCEDataContext sqlcedc = new SQLCEDataContext(SQLCEDataContext.DBConnectionString); 
var invitations = (from SQLCEDataDefinition invitation in 
         sqlcedc.SQLCEDataDefinitions 
        where invitation.SenderID == senderID 
        select invitation).SingleOrDefault(); 
invitations.SenderDeviceID = senderDeviceID; 
sqlcedc.SubmitChanges(); 
+0

沒有UpdateOnSubmit() - 我試過了。 –