C# 从DbSet获取DbContext
我正在开发一些扩展方法来为DbSet添加一些函数。但是,在创建“Update”方法时,我需要DbSet的DbContext能够修改实体的状态。目前的执行情况:C# 从DbSet获取DbContext,c#,entity-framework,ef-code-first,dbcontext,dbset,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
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);
}
公共作废更新(此数据库集存储库,TEntity实体),其中TEntity:class
{
存储库。附加(实体);
var context=//如何从存储库获取上下文?
((IObjectContextAdapter)context.ObjectContext.ObjectStateManager.ChangeObjectState(实体,EntityState.Modified);
}
有人知道如何从DbSet实例获取DbContext吗?我找到了一种更好的方法:
public static void MarkAsModified(this DbContext context, object entity)
{
context.Entry(entity).State = EntityState.Modified;
}
可能重复的