Является ли DbContext таким же, как DataContext? - PullRequest
57 голосов
/ 12 августа 2010

Я следую учебному пособию Скотта Гу , которое ссылается на класс с именем DbContext. Я не могу найти его ни в одном пространстве имен в framework 4, и мне кажется, что он был переименован из CT4 DbContext в .net4 System.Data.Linq.DataContext. Правильно ли мое предположение?

Ответы [ 2 ]

88 голосов
/ 13 августа 2010

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.

8 голосов
/ 05 мая 2017

Слишком поздно, но для гуглеров. DbContext используется для EF ( EntityFramework ) и DataContext используется для L2S ( LINQ To SQL ).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...