2012-05-06 5 views
10

Я только что скачал EntityFramework.dll v4.3. Я нашел несколько вопросов, которые сравнивают DbContext против ObjectContext. Но большинство из них - с 2010 года или до начала 2011 года.Всегда лучше использовать «DbContext» вместо «ObjectContext»?

Я хотел бы узнать больше об этой теме. В частности, есть ли какие-нибудь книги на DbContext Я могу взять мои руки? Я также хочу знать, на сегодняшний день, каковы ограничения DbContext при сравнении его со старшим братом ObjectContext?

Я понимаю, что DbContext более компактен тем, что обладает меньшим количеством свойств. Это говорит о том, что я должен перейти от ObjectContext. Но, если я сделаю эту миграцию, я откажусь от каких-либо возможностей? Например, я читал, что DbContext не имеет возможности STE (Self-tracking entity). Сохраняется ли это, и это вызывает беспокойство?

+0

Возможный дубликат [ 'ObjectContext' против '' DbContext в Entity Framework] (https://stackoverflow.com/questions/9176967/objectcontext-vs-dbcontext-in-entity-framework) – DavidRR

ответ

16

Я хотел бы узнать больше о предмете. В частности, есть ли какие-либо книг на DbContext Я могу взять мои руки?

Ваш вопрос не начинается хорошо, потому что один запрос Google даст вам ответ на этот вопрос. Существует excellent book about DbContext сам — он не содержит ничего о Code First подхода, но я думаю, что это действительно не точка вашего вопроса.

Я нашел целый ряд вопросов, которые сравнивают DbContext vs. ObjectContext. Но большинство из них с 2010 года, или в начале 2011.

Если вы просто хотите заменить ObjectContext + EDMX с DbContext + EDMX, сравнение по-прежнему то же самое. DbContext - обертка вокруг ObjectContext, и ее набор функций не вырос, кроме как в отношении тех функций, которые связаны с первым кодом и мигрантами.

Я понимаю, что DbContext более компактно в том, что он предоставляет меньше свойства. Это говорит о том, что я должен перейти от ObjectContext.

Да, это более компактно и упрощает большинство распространенных задач, которые вы должны иметь с контекстом. Для более сложных задач вы все равно можете преобразовать экземпляр DbContext в экземпляр ObjectContext через IObjectContextAdapter.

Но, если я сделаю эту миграцию, я откажусь от любых возможностей? Для примера , я читал, что DbContext не имеет возможности STE (Self-tracking ). Сохраняется ли это по-прежнему, и это вызывает беспокойство?

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

STE - это просто шаблон с идеей решить какую-либо проблему.Это оказалось хорошим теоретическим решением, но сообщество разработчиков было не очень хорошо воспринято, потому что решение не очень хорошо подходит для реальных сценариев. Это также причина, по которой разрабатываются другие более важные функции вместо улучшения или переноса шаблона.

+4

Что касается ЭСТ: «Платформа Entity Команда Framework не внесла существенных обновлений в шаблон Self-Tracking Entities, так как он был впервые выпущен. Они рекомендуют, чтобы разработчики рассматривали использование служб данных WCF как более надежное и полное решение ». (стр.76 из _DbContext_Julia Lerman) –

 Смежные вопросы

  • Нет связанных вопросов^_^