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
.