別のスレッド内で 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に気付きましたが、バージョン 3.0 の Ninject を使用しており、含まれていませんStandardScopeCallbacks.Request
。