Как лучше всего проверить, существует ли объект в базе данных с точки зрения производительности? Я использую 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
С точки зрения производительности, я думаю, что прямой SQL-запрос с использованием команды EXISTS был бы уместен. Смотрите здесь, чтобы узнать, как выполнить SQL непосредственно в Entity Framework: http://blogs.microsoft.co.il/blogs/gilf/archive/2009/11/25/execute-t-sql-statements-in-entity-framework- 4.aspx