我一直在使用存储库模式和实体框架模型的首次设置。在我的基础存储库类中,我有典型的 CRUD 方法。由于 EF 跟踪对象的更改,为什么我需要更新 CRUD 方法?我可以简单地查询存储库,对对象进行更改并提交,而无需调用 Update。EF 将自动更新任何使用 Modified 对象状态更改的对象。谢谢
public class BaseRepository<T> : IRepository<T> where T : class
{
private ObjectSet<T> _set;
private readonly IDatabaseFactor _databaseFactory;
protected MyDataContext DataContext
{
get{ return _databaseFactory.DataContext;}
}
public BaseRepository(IDatabaseFactory dbFactory)
{
_databaseFactory = dbFactory;
_set = _databaseFactory.DataContext.CreateOjbectSet<T>();
}
public virtual IQueryable<T> GetQuery()
{
return _set;
}
public virtual void Insert(T entity)
{
_set.AddObject(entity);
}
public virtual void Delete(T entity)
{
_set.DeleteObject(entity);
}
public virtual void Update(T entity)
{
_context.ObjectStateManager.ChangeObjectState(entity, EntityState.Modified);
}
}