2010-05-18 93 views
1

我使用其嚮導在visual studio 2010中創建了一個數據庫和dbml。一切工作正常,直到我檢查表數據(也在Visual Studio服務器資源管理器),我的更新沒有在那裏。LinqToSQL不更新數據庫

using (var context = new CenasDataContext()) 
{ 
    context.Log = Console.Out; 
    context.Cenas.InsertOnSubmit(new Cena() { id = 1}); 
    context.SubmitChanges(); 
} 

這是我用來更新我的數據庫的代碼。在這一點上我的數據庫有一個表與一個字段(PK)命名ID。

** INSERT INTO [DBO] .Cenas VALUES(@ P0) - @ P0:輸入int(尺寸= -1; PREC = 0;量表= 0)[1] - 上下文: sqlProvider的(SQL2008)型號:AttributedMetaModel體形: 4.0.30319.1 **

這是從執行(印刷上下文日誌到控制檯)LOG。

我遇到的問題是這些更新不是數據庫中的持久性。我的意思是,當我查詢我的數據庫(Visual Studio服務器資源管理器 - >新查詢)我看到表是空的,每次。

我正在使用SQL Server數據庫文件(.mdf)。

EDIT(1):立即窗口結果

context.GetChangeSet() 
{Inserts: 1, Deletes: 0, Updates: 0} 
    Deletes: Count = 0 
    Inserts: Count = 1 
    Updates: Count = 0 
context.GetChangeSet().Inserts 
Count = 1 
    [0]: {DBTest.Cena} 

回答

0

如果您構造DataContext不帶參數,它將從您的App.Config或Web.Config文件中檢索其連接字符串。打開應用的一個,並確認它指向同一個數據庫。

+0

是的,它指向正確的地方;) – codegarten 2010-05-18 17:08:15

+0

我想你是對的。 問題是使用DataContext創建LinqToSql文件(dbml)的嚮導讀取Settings.settings文件而不是App.config。所以我確定它正在訪問正確的數據庫,但事實並非如此。我甚至不知道它在做什麼<< 注意自我:不要相信奇才。 – codegarten 2010-05-18 17:44:32

0

穿戴context.SubmitChanges斷點();在你的眼前VS窗口,這樣做:

context.GetChangeSet(); 

有一個刀片財產,它應該有一個記錄。這將有助於判斷它是否在排隊插入。

HTH。

+0

結果在OP中。 – codegarten 2010-05-18 17:13:42

+0

謝謝,我在編輯之前發佈。 – 2010-05-18 19:19:06