Я следую учебному руководству Scott Gu, который обращается к классу под названием DbContext. Я не могу найти его ни на каком пространстве имен на платформе 4, и это кажется мне, это было переименовано от CT4 DbContext до .net4 Системы. Данные. Linq. DataContext. Мое предположение корректно?
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
.