Я следую учебнику Scott Gu, который относится к классу с именем DbContext. Я не могу найти его на каком-либо пространстве имен в фреймворке 4, и мне кажется, что он был переименован из CT4 DbContext в .net4 System.Data.Linq.DataContext. Правильно ли мое предположение?
Является ли DbContext таким же, как DataContext?
Ответ 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
.
Ответ 2
Это слишком поздно, но для гуглеров. DbContext
используется для EF
(EntityFramework), а DataContext
используется для L2S
(LINQ To SQL).