Как я могу оценить отложенный оператор Linq при отладке? - PullRequest
2 голосов
/ 24 апреля 2010

Я отлаживаю в VS2010, и я хочу проверить строковое значение, но все, что я могу заставить отладчик показать мне (через часы, зависание, локальные и т. Д.), Это:

"System.Linq.Enumerable+<TakeIterator>d__3a`1[System.Char]"

Мне все равно, есть ли побочные эффекты от преждевременной оценки или чего-то еще, я просто хочу посмотреть, как будет оцениваться выражение, если я оцениваю его прямо сейчас в текущей точке останова.

Как это сделать? Также я могу изменить свой код таким образом, чтобы он оценивал раньше? Не то чтобы меня волновало, когда я не отлаживаю ... но просто задаюсь вопросом.

В случае, если это уместно ... (Я сомневаюсь в этом.) Я напичкаю новый объект объекта перед сохранением в базу данных ... некоторые поля назначаются с помощью операторов LINQ, я не уверен, когда они будут оценены под прикрытием EF. Сбой обновления БД: строка или двоичные данные будут обрезаны ... Поэтому я пытаюсь найти слишком длинное поле.

Ответы [ 2 ]

5 голосов
/ 24 апреля 2010
2 голосов
/ 12 января 2011

Это поздно и может или не может относиться к тому, что первоначально было задано, но я нашел эту статью Бартом Де Сметом некоторое время назад о методах кодирования, помогающих отладке Linq to Objects:

http://community.bartdesmet.net/blogs/bart/archive/2009/04/23/linq-to-objects-debugging.aspx

Я еще не пробовал, но подумал, что это интересно.

...