2010-03-26 43 views
0

我想在我的Acccounts表中插入使用LINQ一個新的帳戶。我嘗試使用EntityModel和Linq2Sql。我沒有插入我的數據庫,也沒有任何異常。LINQ的INSERT語句什麼都沒有,沒有失敗或者

public static Linq2SQLDataContext dataContext { 
     get { return new Linq2SQLDataContext(); } 
    } 

try { 
     //EntityModel 
     Accounts acc = Accounts.CreateAccounts(0, Voornaam, Straat, Huisnummer, Stad, Land, 15, EmailReg, Password1); 
     Entities.AddToAccounts(acc); 
     Entities.SaveChanges(); 

     //Linq 2 SQL 
     Account account = new Account { City = Stad, Country = Land, EmailAddress = EmailReg, Name = Voornaam, Password = Password1, Street = Straat, StreetNr = Huisnummer, StreetNrAdd = Toevoeging, Points = 25 }; 
     dataContext.Accounts.InsertOnSubmit(account); 

     var conf = dataContext.ChangeConflicts; // No changeConflicts 
     ChangeSet set = dataContext.GetChangeSet(); // 0 inserts, 0 updates, 0 deletes 

    try { 
     dataContext.SubmitChanges(); 
    } catch (Exception ex) { } 

     } catch (EntityException ex) {   

    } 
+0

您是否將斷點插入catch塊? (你的代碼抑制所有的例外) – Nagg 2010-03-26 17:52:53

+0

是的,我已經把兩個catch塊的斷點。 – PietjePoeier 2010-03-26 18:05:13

回答

0

我的問題是:

public static Linq2SQLDataContext dataContext {   get { return new Linq2SQLDataContext(); }  } 

它創建每次新的datacontext。 正因爲如此,

dataContext.Accounts.InsertOnSubmit(account); and 
dataContext.SubmitChanges(); 

沒有彼此的任何引用,因爲它們是兩個不同的datacontexts這將導致沒有提交任何查詢。

4

將.SubmitChanges()包裝在try/catch中,但吞下異常......您確定沒有發生異常嗎?

+0

正面,在調試模式下,它不輸入​​catch。 嘗試{\t \t \t \t \t dataContext.SubmitChanges(); (例外前){ } string testt = ex.Message.ToString(); } – PietjePoeier 2010-03-26 17:57:30

0

不知道是否有幫助,但我只是有相同的症狀。

我有LINQ事務中的插入。

的原因是一個AFTER INSERT觸發器這是失敗,導致交易無法完成,但沒有例外。

而且使用SQL事件探查並沒有顯示任何東西。我只是通過將INSERT語句粘貼到Profiler上並手動運行來發現它。

相關問題