Как я могу реализовать DBSet.AddOrUpdate в Entity Framework 4.4?
в ответ на ответ Slauma на мой вопрос о запущенных приложениях, использующих EF в Windows XP Я конвертирую свое приложение обратно из Entity Framework 5.0 для использования Entity Framework 5.0 и целевой платформы .NET 4.0 (также называемой Entity Framework 4.4)
однако я сталкиваюсь со следующей ошибкой;
System.Data.Entity.DbSet<MyEntity> does not contain a definition for AddOrUpdate
and no extension method of a type System.Data.Entity.DbSet<MyEntity> accepting a
first argument of type System.Data.Entity.DbSet<MyEntity> could be found.
(Are you missing a using directive or assembly reference )
Я пробовал искать по фрагментам этого сообщения об ошибке, но у меня не было большого успеха. Странно 4.4, даже не упомянут в этой ссылке Microsoft нет даже тега SO для EF4.4
2 ответов
вы должны добавить...
using System.Data.Entity.Migrations;
...в файл кода AddOrUpdate
доступен. Это метод расширения IDbSet<T>
это реализовано в IDbSetExtensions
класс System.Data.Entity.Migrations
пространство имен.
когда вы включить миграций для веб-приложений MVC5 вы получаете следующий комментарий в методе Seed конфигурации:
// You can use the DbSet<T>.AddOrUpdate() helper extension method
мой первоначальный удар по этому был пользователю DbSet<MyEntity>.AddOrUpdate()
. Это приведет к тому же сообщению об ошибке (и правильно), что и в этом вопросе.
Исправление состоит в том, чтобы прочитать остальную часть комментария и использовать параметр контекста, переданный в функцию Seed:
context.MyEntity.AddOrUpdate();