Почему я не вижу свойства Local при использовании Entity Framework? - PullRequest
5 голосов
/ 31 января 2012

Я знаю, что упускаю что-то совершенно очевидное, но почему я не вижу свойства Local при работе с контекстом EF? Типичный пример онлайн выглядит следующим образом:

context.Parents.Local

Но я не вижу свойства Local. Теперь, насколько я понимаю, Local является членом класса DbSet, и я не думаю, что я работаю с DbSet в моем приложении. Что я знаю, так это то, что я добавил ссылку на EntityFramework, у меня есть using System.Data.Entity, а все остальное, с чем я знаком, работает просто отлично. За исключением того, что Local там нет, и мне действительно нужны некоторые возможности сортировки для моего DataGridView.

Помощь!

Ответы [ 2 ]

4 голосов
/ 31 января 2012

DbContext, DbSet и т. Д. Являются частью Entity Framework 4.1 / 4.2, которая поставляется, в частности, как пакет EntityFramework NuGet. Только с .NET Framework у вас есть только то, что сейчас называется «Core EF Runtime» в соответствии с this :

Короче, нужно установить EF 4.1 / 4.2.

2 голосов
/ 03 февраля 2012

Если вы посмотрите на свой автоматически сгенерированный код для класса контекста, он наследует от DbContext или ObjectContext?

Если он наследуется от ObjectContext, вам нужно предпринять еще несколько шагов.

  • На поверхности дизайна модели щелкните правой кнопкой мыши -> Добавить элемент генерации кода
  • Выберите «Код» из меню слева
  • Выберите «ADO.NET DbContextGenerator»
  • Назовите предмет так же, как ваша модель (например, «MyModel»)
  • Нажмите Добавить

В ваш проект будут добавлены два файла * .tt, которые называются MyModel.tt и MyModel.Context.tt.

После перекомпиляции снова просмотрите ваш автоматически сгенерированный код для контекста, и теперь он должен наследоваться от DbContext. Ваш объект Parents теперь будет иметь тип DbSet вместо ObjectSet, и теперь вы сможете использовать свойство Local.

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