【问题标题】:Linq insert statement inserts nothing, does not fail eitherLinq insert 语句不插入任何内容,也不会失败
【发布时间】:2011-02-01 07:13:12
【问题描述】:

我正在尝试使用 linq 在我的帐户表中插入一个新帐户。我尝试使用 EntityModel 和 Linq2Sql。我没有插入到我的数据库中,也没有任何异常。

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) {          

    }

【问题讨论】:

  • 你有没有在 catch 块中插入断点? (您的代码禁止所有异常)
  • 是的,我在两个 catch 块中都设置了断点。

标签: asp.net database linq linq-to-sql


【解决方案1】:

我的问题是:

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

每次都会创建一个新的数据上下文。 正因为如此,

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

彼此之间没有任何引用,因为它们是 2 个不同的数据上下文,这将导致不提交任何查询。

【讨论】:

    【解决方案2】:

    不确定它是否有帮助,但我只是有完全相同的症状。

    我在事务中插入了 LINQ。

    原因是 AFTER INSERT 触发器失败,导致事务未完成,但没有异常。

    同样使用 SQL Profiler 也没有显示任何内容。我只是通过从 Profiler 中粘贴 INSERT 语句并手动运行它才找到它。

    【讨论】:

      【解决方案3】:

      您将 .SubmitChanges() 包装在 try/catch 中,但吞下异常...您确定没有发生异常吗?

      【讨论】:

      • 正,在调试模式下它不会进入捕获。尝试 { dataContext.SubmitChanges(); } catch (Exception ex) { string testt = ex.Message.ToString(); }
      猜你喜欢
      • 1970-01-01
      • 2019-03-22
      • 2020-10-12
      • 2017-04-21
      • 2012-12-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多