Подтвердить что ты не робот

Какая разница между DbContext и ObjectContext

От MSDN:

Представляет комбинацию шаблонов Unit-Of-Work и Repository и позволяет вам запрашивать базу данных и группировать вместе изменения, которые затем будут записываться обратно в хранилище в виде единицы. DbContext концептуально похож на ObjectContext.

Я, хотя DbContext обрабатываю только соединение с БД и количество потоков, работающих с БД.

Теперь я понимаю, что он содержит механизм отслеживания? Я думал, что это было в ObjectContext.

Итак, что (на простом английском языке) разница между ними?

4b9b3361

Ответ 1

DbContext - это облегченная версия класса ObjectContext, которая лежит почти прямо поверх ObjectContext (есть даже способ добраться до ObjectContext только из DbContext). Это также намного проще в использовании, IMO, и делает операции CRUD синх.

Для получения более подробной информации о том, кто лучше, чем Julie Lerman, больше информации о различиях, как это было внесено в EF 4.1.

Ответ 2

DbContext - это меньший API, показывающий наиболее часто используемые функции ObjectContext. В некоторых случаях эти функции зеркалируются в DbContext API. В других случаях команда Entity Framework упростила более сложное кодирование предоставляя нам такие методы, как поиск или свойства, такие как DbSet.Local. Но theres большой API скрывается под тем, что вам все еще может потребоваться доступ. Например, вы можете хотите работать непосредственно с MetadataWorkspace для написания общего кода против классов потому что этот API может читать модель более эффективно, чем отражение. Кроме того, MetadataWorkspace может предоставить больше информации о метаданных, чем вы можно обнаружить с отражением, например, для свойств Key. Или вы можете захотеть воспользоваться функцией, специфичной для базы данных, которая открывается через Entity SQL, которые вы не можете получить от LINQ до Entities. Или у вас уже может быть приложение написанных с использованием ObjectContext, и вы хотите использовать DbContext в будущих обновлениях без замены всего кода ObjectContext. (Ссылка из программирования DbContext)

Ответ 3

Контекст объекта:

1.Поддержка скомпилированного запроса. 2.Поддержка самостоятельного отслеживания объектов. 3.Доступно для работы с фреймами объекта. Версия 4.0 и ниже. 4.Не безопасна для потоков. 5. Это лучше всего подходит для БД сначала и для модели сначала.

Контекст базы данных:

1. Он не поддерживает скомпилированный запрос 2. Он не поддерживает самостоятельное отслеживание сущностей 3. Он доступен для работы с фреймами сущностей 4.1 и более поздней версии 4. Он является поточно-ориентированным для статического и разделяемого члена (общедоступным). 5. Это лучше всего подходит для БД сначала и для модели первого подхода и кода сначала.