【发布时间】:2015-07-15 23:17:48
【问题描述】:
我正在编写一个简单的博客应用程序并尝试在我的通用存储库模式中建立 CRUD 操作,但我的更新方法出现错误:
'System.Data.Entity.DbSet' 不包含对 'Entry' 并且没有扩展方法 'Entry' 接受第一个参数 可以找到类型“System.Data.Entity.DbSet”(您是否缺少 使用指令还是程序集引用?)
我遵循post that explained 如何通过在 DbContext 上添加额外的间接级别来“伪造”Entry()。但是在 MVC 5 中,我们继承自:IdentityDbContext,而不是 DbContext。我确实尝试实施作者的修复,但错误仍然存在。
我的问题
如何使用 IdentityDbContext 在 Entity Framework 6 中向我的存储库添加更新方法?如果我们不应该这样做,那么如何使用这种模式更新记录?
我应该注意,所有其他方法都按预期工作。
我的通用存储库:
public class BlogEngineRepository<T> : IRepository<T> where T : class
{
protected DbSet<T> DbSet;
public BlogEngineRepository(DbContext dataContext)
{
DbSet = dataContext.Set<T>();
}
#region IRepository<T> Members
public void Insert(T entity)
{
DbSet.Add(entity);
}
public void Delete(T entity)
{
DbSet.Remove(entity);
}
public void Update(T entity)
{
DbSet.Entry(entity).State = System.Data.Entity.EntityState.Modified;
}
public IQueryable<T> SearchFor(Expression<Func<T, bool>> predicate)
{
return DbSet.Where(predicate);
}
public IQueryable<T> GetAll()
{
return DbSet;
}
public T GetById(int id)
{
return DbSet.Find(id);
}
#endregion
}
【问题讨论】:
标签: c# asp.net-mvc-5 entity-framework-6 asp.net-identity repository-pattern