2016-05-22 2 views
0

Я использую MongoDB + C# + Knockout. Недавно я добавил новый столбец «SubmitCount» типа данных «int» в моей существующей базе данных (MongoDB). Когда я запрашиваю mongodb с помощью C#, он дает мне исключение Stackoverflow без трассировки стека. Я выяснил, что это дает мне исключение:Исключение Stackoverflow в JSON.net

var query = Query.EQ("Shelf", "Create"); 
var result = CollectionName.FindAs<BsonDocument>(query); 
//Throwing exception at below line 
var trialList = (from clnTrial in result 
          select new { TrialID = clnTrial["TrialID"].ToString(), CreatedBy = clnTrial["CreatedBy"].ToString() }).Distinct().ToList(); 

Он работал должным образом перед добавлением новой колонки.

Я много искал, но ничего не нашел. Любая помощь будет оценена по достоинству.

EDIT: Я просто перезапускаю код, удаляя «ToList()», теперь он не дает исключения. : - /. Но мне нужен ToList().

+0

При удалении '.ToList()', это все еще дает исключение, когда вы идете использовать переменная 'trialList'? Без этого звонка прямо там, вы задерживаете итерацию всех элементов, пока вы на самом деле ее не используете. – krillgar

+0

И если все, что вы делаете с переменной 'trialList', преобразует его в JSON, тогда вам не нужно называть' .ToList() 'на нем. Вы отлично передаете 'IEnumerable' в JSON.NET и все еще получаете объект массива JavaScript. – krillgar

+0

@krillgar, Когда я удаляю .ToList(), он не дает исключение. Интересно, почему это начало давать мне исключение после того, как я добавил новый столбец. Количество записей совпадает с предыдущим. – PrasadB

ответ

0

Это немного странно. Но, пробовав все возможные решения, я заметил, что dll NewtonSoft.JSON, который я использовал, не был последней версией. Я обновил DLL через Nuget и Bingo! он снова начинает работать.

Некоторые предложения по обновлению DLL NewtonSoft.JSON

  • сначала удалить старую, а затем обновить до последней один.
  • Если вы FileLoadException для ссылки два NewtonSoft.JSON DLL различной версии, то попробуйте это решение FileLoadException was unhandled by user code
Смежные вопросы