检查实体框架中是否存在对象的最佳方法?

entity-framework exists linq-to-entities

从性能的角度来看,检查数据库中是否存在对象的最佳方法是什么?我正在使用Entity Framework 1.0(ASP.NET 3.5 SP1)。

一般承认的答案

如果您不想直接执行SQL,最好的方法是使用Any() 。这是因为Any()会在找到匹配后立即返回。另一个选项是Count() ,但这可能需要在返回之前检查每一行。

以下是如何使用它的示例:

if (context.MyEntity.Any(o => o.Id == idToMatch))
{
    // Match!
}

在vb.net中

If context.MyEntity.Any(function(o) o.Id = idToMatch) Then
    ' Match!
End If

热门答案

从性能的角度来看,我猜使用EXISTS命令的直接SQL查询是合适的。请参阅此处了解如何在Entity Framework中直接执行SQL: http//blogs.microsoft.co.il/blogs/gilf/archive/2009/11/25/execute-t-sql-statements-in-entity-framework- 4.aspx



许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因
许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因