确定表是否已具有特定ID的记录的最佳方法是什么?
我有一个简短的问题。 我目前的项目我正在使用LINQ-to-SQl。 这是确定表是否具有特定ID记录的最佳方法?
提前致谢。
如果您只是需要知道它是否存在,那么可能:
var exists = db.SomeTable.Any(row => row.Id == id);
如果你想要行(如果它不存在则为null
),那么:
var row = db.SomeTable.FirstOrDefault(row => row.Id == id);
实际上,在.NET 3.5中使用可以说是有益的 :
var row = db.SomeTable.Where(row => row.Id == id).FirstOrDefault();
但这在4.0中已得到修复,两者的工作原理相同。 区别在于,在3.5SP中, FirstOrDefault(predicate)
不检查身份管理器,因此即使它已经知道您要求的行(因为它在内存中),它也会命中db。