Ответ 1
В настоящее время я использую DbContext в первой ситуации в базе данных, и он работает нормально. DbContext предназначен не только для разработки Code First.
DbContext действует как обертка вокруг объекта ObjectContext. У Джули Лерман есть приятное объяснение, как вы можете получить доступ к объекту ObjectContext, который находится внутри DbContext здесь. Поэтому, если вы решите использовать DbContext, вы все равно можете решить проблемы с ObjectContext, если вам нужно.
DbContext упрощает общие задачи. Одним из примеров является метод Find().
Product p = db.Products.Find(id);