Действительно ли DbContext является тем же как действительно ли DataContext?

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

58
задан Padu Merloti 12 August 2010 в 19:47
поделиться

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.

88
ответ дан 24 November 2019 в 18:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: