Нет.Find
сначала проверяет, загружен ли объект в контекст.Если да, он просто возвращает этот объект.Если нет, он запрашивает объект из базы данных.Single
всегда запрашивает объект из базы данных. Если оно уже в контексте, оно обновляется значениями из БД. (Редактировать: последнее предложение неверно, см. Комментарии!)
Также Find
возвращает null
если объект не находится ни в контексте, ни в базе данных.Single
выдает исключение, если оно не найдено в базе данных.
Вы имеете в виду: context.SomeEntitySet.Find(id)
и context.SomeEntitySet.Single(x => x.Id == id)
, я думаю.