RavenDB で奇妙な問題が発生しました
public ActionResult Save(RandomModel model)
{
//Do some stuff, validate model etc..
RavenSession.Store(model);
RavenSession.SaveChanges();
var newListOfModels = RavenSession.Query<RandomModel>().ToList();
return View("randomview",newListOfModels);
}
newListOfModels には、store メソッドで追加したばかりのモデルが含まれていません。
ただし、savechanges の後に Thread.Sleep(100) を追加すると、保存されたモデルが新しいリストに含まれます。
RavenDB への保存と保存の方法が間違っていますか?
どうすればいいですか?
もちろん、受信モデルを newListOfModels に追加し、たとえば basecontrollers の onactionexecuted メソッドで SaveChanges を実行するだけの回避策があります。
私の主な関心事は、ドキュメントセッションをクエリしてそこに新しく追加されたモデルを見つける前に、スレッドを遅らせる必要がある理由です。