我遇到了 EF 没有在另一个线程中更新我的对象的问题。我能够检索对象,但是当我调用时UnitOfWork.Commit();
,SQL Server 探查器不显示正在更新的项目。如果我在线程之外按顺序运行它,那么它工作正常。有任何想法吗?
new Thread(() =>
{
var divisionBracketsService = DependencyResolver.Current.GetService<IDivisionBracketsService>();
if (divisionBracketsService != null)
divisionBracketsService.ProcessGame(gameId);
}).Start();
更新
好吧,当我将范围更新为线程时,它起作用了。是否有任何模式可以同时使用这两个范围?
kernel.Bind<IDatabaseFactory>().To<DatabaseFactory>().InThreadScope();
更新
我注意到这个问题Ninject InRequestScope fallback to InThreadScope,但我使用的是 Ninject 3.0 版,它不包含StandardScopeCallbacks.Request
.