代码之家  ›  专栏  ›  技术社区  ›  rp.

使用LINQ执行更新

  •  2
  • rp.  · 技术社区  · 16 年前

    我正在深入研究Linq——试图理解基本模型(我觉得这很酷)。下面的代码是提交更新之前要执行的代码。

       Linq01.Account acc = context.Accounts.Single( pc => pc.AccountID == AccountID );
       acc.Name = textboxAccountNameRead.Text.Trim();
       context.SubmitChanges();
    

    到目前为止,一切都很好。但是如果single()方法失败——如果找不到帐户ID,该怎么办?

    谢谢您!

    2 回复  |  直到 16 年前
        1
  •  9
  •   Aaron Powell    16 年前

    你应该使用 SingleOrDefault ,如果查询不返回值,则可以检查它是否为空:

    var acc = context.Accounts.SingleOrDefault(pc => pc.AccountId == AccountId);
    if(acc != null)
    {
      acc.Name = textboxAccountNameRead.Text.Trim();
      context.SubmitChanges();
    }
    
        2
  •  1
  •   Jon Skeet    16 年前

    要添加到slace的答案,如果您调用single,然后找不到帐户ID,它将抛出一个异常。在 一些 比返回空值和显式处理空值更合适的情况。