确定表是否已具有特定ID的记录的最佳方法是什么?

时间:2010-03-18 12:38:17

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

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

提前致谢。

1 个答案:

答案 0 :(得分:3)

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

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)不检查身份管理器,因此即使它已经知道您要求的行(因为它在内存中),它也会命中db。 / p>