В выходные я понял, что приложение, над которым я работаю, использует NHibernate как ORM для базы данных sqlite, имеет проблему параллелизма.
По сути, я перебираю коллекцию в 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 () для каждого итерированного элемента, но я не уверен, как приспособиться и предотвратить это. Любой совет приветствуется.