Всегда ли лучше использовать "DbContext" вместо "ObjectContext"?

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

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

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

1 ответ

Решение

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

Ваш вопрос начинается не очень хорошо, потому что один запрос Google даст вам ответ на этот вопрос. Есть отличная книга о самом DbContext - в нем ничего не говорится о подходе Code First, но я думаю, что это действительно не тот вопрос, который вам нужен.

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

Если вы просто хотите заменить ObjectContext + EDMX с DbContext + EDMX, сравнение все та же. DbContext это обертка вокруг ObjectContext и его набор функций не вырос, за исключением тех функций, которые связаны с Code First и Migrations.

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

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

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

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

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

Другие вопросы по тегам