Где is context.Entry()?
Я написал свой собственный контекст, прочитав эту статью и многие другие, но ни одна из тем не объясняет, где находится этот context.Entry(obj)
, я имею в виду даже при чтении в этой статье, я не могу понять, как реализовать этот метод, и я получаю следующую ошибку:
Ошибка 36 'Domain.Entities.OurWebSiteContext' не содержит определение "Enter" и метод расширения "Enter", принимающий Первый аргумент типа "Domain.Entities.OurWebSiteContext" может быть (вам не хватает директивы использования или ссылки на сборку?)
Кто-нибудь поможет мне, пожалуйста,
Отредактировано →
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
может быть слишком поздно для ответа, но это может помочь другим, 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