В выходные я понял, что приложение, над которым я работаю, использует NHibernate как ORM для базы данных sqlite, имеет проблему параллелизма.Ошибка параллельной работы NHibernate
Я по существу пробегаем по коллекции в яваскрипт и выполняет следующие действия:
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() для каждого элемента повторяется, но я не уверен, как его разместить и предотвратить. Любые советы приветствуются.
И код в цикле? – Paco
Код есть, я не уверен, почему вы его не видите. Я ввел в строку «Я по существу перебираю коллекцию в javascript и выполняю следующее» – splatto
Я действительно понимаю это сейчас. Почему вы не публикуете все объекты в одном запросе? И я могу представить несколько проблем параллелизма, о которых вы говорите? – Paco