2012-10-06 45 views
0

我無法更新數據庫,但是當im調試它時,生產更新並在上下文中創建記錄。但是當我關閉調試時,數據庫沒有任何數據定義。Linq To Sql更新DataContext而不是數據庫

我喜歡編碼,直到我得到了這個'不更新'的SubmitChanges()方法到數據庫(但更新上下文)。它真的殺死了我,我在網上找到了解決方案的時間已經幾個小時。

順便說一句,我設置'ID'作爲生產PK與身份遞增的PK屬性。在.dbml文件中,我也設置了自動增量。下面是我的代碼:

qmsDBDataContext context = new qmsDBDataContext(); 
public void AddProduction(int quails, int eggs, int feeds, int id_box) { 
     Production production = new Production(); 
     production.quails = quails; 
     production.eggs = eggs; 
     production.id_box = id_box; 
     production.feeds = feeds; 
     context.Productions.InsertOnSubmit(production); 
     context.SubmitChanges(); 
} 
+1

調用SubmitChanges後,production.id的值是多少?如果它爲零,那麼所有參數都爲零或者你的定義/ dbml是錯誤的。如果它不爲零,那麼你要麼處於一個沒有完成的事務中(例如一個沒有完成的TransactionScope),要麼正在保存正確的記錄。 – sgmoore

+0

@sgmoore從1開始,因爲我設置了seed = 1, 然後2爲另一個添加記錄等等等等...... – Jed

+0

@sgmoore那個事務會是什麼?即時通訊還不熟悉TransactionScope的東西...是不是生產.id,我沒有把價值? – Jed

回答

0

我找到了解決確切回答我的問題,有人解釋here 。我正在處理的mdf文件存在於我的項目/調試文件夾中,並且服務器資源管理器正在查看的mdf文件存在於項目文件夾中。感謝Matt Warren - MSFT回答這個問題。乾杯

@sgmoore謝謝你給我關於交易範圍的想法。