NHibernate并发问题

时间:2010-02-01 17:59:15

标签: asp.net-mvc nhibernate sqlite concurrency

上周末,我意识到我正在使用的NHibernate作为sqlite数据库的ORM的应用程序存在并发问题。

我基本上在javascript中循环遍历集合并执行以下操作:

var item = new Item();
item.id = 1;
item.name = 2;
$.post("Item/Save", $.toJSON(item), function(data, testStatus) {
  /*User can be notified that the item was saved successfully*/
}, "text");

我的服务器代码如下所示:

public ActionResult Save()
{
    string json = Request.Form[0];
    var serializer = new DataContractJsonSerializer(typeof(JsonItem));
    var memoryStream = new MemoryStream(Encoding.Unicode.GetBytes(json));
    JsonItem item = (JsonItem)serializer.ReadObject(memoryStream);
    memoryStream.Close();

    SaveItem(item);
    return Content("success");
}

并发问题显然发生在为迭代的每个元素调用Save()的循环中,但我不确定如何容纳和防止这种情况。任何建议都表示赞赏。

1 个答案:

答案 0 :(得分:1)

什么是并发问题?

我不明白你的并发问题。

评论:如果你迭代集合,在回发中你重新加载窗口...嗯......这里有一个潜在的问题。第一个回发将丢弃任何待处理的工作,完全刷新页面。

建议:不要迭代,在一次Ajax调用中发送完整的集合。