更改应用于数据库但DbContext未显示

时间:2014-11-13 17:07:31

标签: asp.net entity-framework ninject

我有一个使用OWin托管的asp.net webapi,我使用ninject进行DI。以下是我注入DbContext的方法:

kernel.Bind<IAuthRepository>().To<AuthRepository>();
kernel.Bind<AuthDbContext>().ToSelf().InRequestScope();

我有一个存储库类,我使用上下文:

private AuthDbContext _ctx { get; set; }    

public AuthRepository(AuthDbContext ctx)
{
    _ctx = ctx;
}

我在存储库中有这种方法可以更改一些数据:

var res = await _ctx
    .Clients
    .FirstOrDefaultAsync(clientEntity => clientEntity.UserRef.Id == p);

//do the modification
_ctx.Entry(res).State = EntityState.Modified;

_ctx.SaveChanges();

return res;

它在db中正确保存数据,但是当我调用另一个动作并获取保存的实体之后,我发现更改不在上下文中。

public async Task<Client> FindClientById(Guid clientId)
{
    return await _ctx
        .Clients
        .FirstOrDefaultAsync(clientEntity => clientEntity.Id == clientId);
}

0 个答案:

没有答案