Как я могу оценить отложенный оператор Linq при отладке?
Я отлаживаю в VS2010, и я хочу проверить строковое значение, но все, что я могу получить отладчик, чтобы показать мне (через часы, зависания, местные и т. Д.):
"System.Linq.Enumerable+<TakeIterator>d__3a`1[System.Char]"
Мне все равно, есть ли побочные эффекты от преждевременной оценки или чего-то еще, я просто хочу посмотреть, к чему будет относиться выражение, если я оцениваю его прямо сейчас в текущей точке останова.
Как это сделать? Также я могу изменить свой код таким образом, чтобы он оценивал раньше? Не то чтобы меня волновало, когда я не отлаживаю... но просто задаюсь вопросом.
В случае, если это уместно... (я сомневаюсь в этом.) Я заполняю новый объект сущности перед сохранением его в базе данных... некоторые поля назначаются с помощью операторов LINQ, я не уверен, когда они будут оценены в соответствии с чехлы EF. Сбой обновления БД: строка или двоичные данные будут обрезаны... Поэтому я пытаюсь найти слишком длинное поле.
2 ответа
Это поздно и может или не может относиться к тому, о чем первоначально спрашивали, но я нашел эту статью Bart De Smet некоторое время назад о методах кодирования, помогающих в отладке Linq to Objects:
http://community.bartdesmet.net/blogs/bart/archive/2009/04/23/linq-to-objects-debugging.aspx
Я еще не пробовал, но подумал, что это выглядит интересно.