从DbSet获取DbContext

时间:2012-11-22 19:52:50

标签: c# entity-framework ef-code-first dbcontext dbset

我正在开发一些扩展方法来为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?

1 个答案:

答案 0 :(得分:0)

我找到了更好的方法来实现这一目标:

public static void MarkAsModified(this DbContext context, object entity)
    {
        context.Entry(entity).State = EntityState.Modified;
    }