2010-02-01 8 views
0

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

+0

И код в цикле? – Paco

+0

Код есть, я не уверен, почему вы его не видите. Я ввел в строку «Я по существу перебираю коллекцию в javascript и выполняю следующее» – splatto

+0

Я действительно понимаю это сейчас. Почему вы не публикуете все объекты в одном запросе? И я могу представить несколько проблем параллелизма, о которых вы говорите? – Paco

ответ

1

Что такое проблема параллелизма?

Я не понимаю вашу проблему с параллелизмом.

Комментарий: если вы перебираете коллекцию, И в обратной передаче вы перезагружаете окно ... хммм ... здесь есть потенциальная проблема. Первая обратная связь отбросит любую незавершенную работу, полностью обновив страницу.

Предложение: не перебирать, отправлять полную коллекцию в одном вызове Ajax.

+0

Откат не был там, я скопировал какой-то старый код из текстового файла ... oops. Во всяком случае, я когда-то думал, что отправка всей коллекции будет сложной процедурой, но полчасовое кодирование показало мне другое. Спасибо за ваше решение. – splatto

Смежные вопросы