2010-03-26 47 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上并手动运行来发现它。

相关问题