Ответ 1
DbContext
- это новый класс, который был добавлен в недавнюю отдельную загрузку командой EF. В настоящее время он не является частью основного EF 4.0. Однако DbContext
перемещение вперед было бы предпочтительным способом взаимодействия с EF.
Итак, как он отличается от ObjectContext
? Ну семантически они точно такие же, но они уменьшили массу дополнительного шума, который имел ObjectContext
. Например, для выставления набора требуется больше работы, например:
public ObjectSet<Customer> Customers
{
get { return db.CreateObjectSet<Customer>(); }
}
С помощью DbContext
вы можете:
public DbSet<Customer> Customers { get; set; }
В основном на ObjectContext
, когда вы делаете точку (.
), все просто там, что делает список довольно огромным. То, что команда EF на самом деле захотела выставить на DbContext
, - это объекты, которые относятся только к вашему домену, а остальная часть возможностей платформы подпадает под разные свойства. Это просто облегчает процесс программирования.
Это означает, что если вы используете ObjectContext
прямо сейчас, с небольшим количеством кода, вы можете легко перейти к DbContext
.