3

我正在开发一些扩展方法来为 DbSet 添加一些功能。但是,在创建“更新”方法时,我需要 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 ?

4

1 回答 1

0

我找到了一种更好的方法来实现这一点:

public static void MarkAsModified(this DbContext context, object entity)
    {
        context.Entry(entity).State = EntityState.Modified;
    }
于 2012-11-22T20:07:47.370 回答