我正在开发一些扩展方法来为DbSet添加一些功能。但是,在创建“Update”方法时,我需要DbSet的DbContext才能修改实体的状态。目前的实施:
public void Update<TEntity>(this DbSet<TEntity> repository, TEntity entity) where TEntity : class
{
repository.Attach(entity);
var context = // how get the context from repository?
((IObjectContextAdapter)context).ObjectContext.ObjectStateManager.ChangeObjectState(entity, EntityState.Modified);
}
有没有人知道如何从DbSet实例获取DbContext?
答案 0 :(得分:0)
我找到了更好的方法来实现这一目标:
public static void MarkAsModified(this DbContext context, object entity)
{
context.Entry(entity).State = EntityState.Modified;
}