где находится context.Entry ()? - PullRequest
29 голосов
/ 19 августа 2011

Я написал свой собственный контекст, прочитав эту статью и многие другие, но ни одна тема не объясняет, где это context.Entry(obj) определено, я имею в виду, даже читая эту статью , яЯ не могу понять, как реализовать этот метод, и я получаю следующую ошибку:

Ошибка 36 «Domain.Entities.OurWebSiteContext» не содержит определения для «Entry» и нет расширения метода «Entry», принимающегопервый аргумент типа 'Domain.Entities.OurWebSiteContext' может быть найден (вам не хватает директивы using или ссылки на сборку?)

Кто-нибудь может мне помочь, пожалуйста

Отредактировано >>

 public class OurWebSiteContext : DbContext
    {
        public OurWebSiteContext(string connString)
            : base(connString)
        {

        }

        public DbSet<Article> Articles { get; set; }
        public DbSet<Category> Categories { get; set; }
        public DbSet<Comment> Comments { get; set; }
    }

1 Ответ

43 голосов
/ 12 февраля 2012

может быть слишком поздно, чтобы ответить, но это может помочь другим, EF 4.0 использует класс ObjectContext, где в качестве версии 4.1 используется класс DbContext, в котором определены такие методы, как Set<T> и Entry , С версией 4.0 вы можете сделать что-то вроде

DatabaseContext _context = new DatabaseContext();
_context.ObjectStateManager.ChangeObjectState(entity, System.Data.EntityState.Modified);

с версией 4.1 сделано как

_context.Entry(entity).State = System.Data.EntityState.Modified;

вот полезная SO ссылка

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