【问题标题】:What is the best way to determine if table already has record with specific ID?确定表是否已经具有特定 ID 的记录的最佳方法是什么?
【发布时间】:2010-03-18 20:42:02
【问题描述】:

我有一个简短的问题。我当前的项目正在使用 LINQ-to-SQl。这是确定表是否具有特定 ID 的记录的最佳方法?

提前致谢。

【问题讨论】:

    标签: c# .net linq-to-sql


    【解决方案1】:

    如果您只需要知道它是否存在,那么也许:

    var exists = db.SomeTable.Any(row => row.Id == id);
    

    如果你想要该行(或null,如果它不存在),那么:

    var row = db.SomeTable.FirstOrDefault(row => row.Id == id);
    

    实际上,在 .NET 3.5 中可以使用 a benefit

    var row = db.SomeTable.Where(row => row.Id == id).FirstOrDefault();
    

    但这在 4.0 中已修复,并且两者的工作方式相同。不同之处在于,在 3.5SP 中,FirstOrDefault(predicate) 不检查身份管理器,因此即使它已经知道您请求的行(因为它在内存中),它也会访问数据库。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-10-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-31
      • 2010-10-18
      • 2013-06-03
      相关资源
      最近更新 更多