我专门参考Impersonating user with Entity Framework的公认答案,其中包含以下代码:
using (((WindowsIdentity)HttpContext.Current.User.Identity).Impersonate())
using (var dbContext = new MyEntityFrameworkContainer())
{
...
}
我宁愿dbContext
只在我的存储库中的一个地方实例化,实现IDisposable
,然后在实体被处置时处置上下文。我不确定using
上面的两个范围是如何相互影响的,那么如何在避免使用块的同时实现这段代码在模拟方面的作用?
补充:
正如下面的答案所建议的,我可以简单地使用局部变量并“手动”确保资源被释放,但我在这里关心的是内部的实例化是否using
会受到外部的影响using
。如果这只是一生的问题,并且外部using
没有建立任何上下文或影响内部的任何内容,那么以下答案已经回答了我的问题。