Почему это простое выражение LINQ закрывает приложение, но не выдает исключение

Итак, у меня есть это выражение LINQ, которое просто пытается извлечь сущность из базы данных, но при запуске приложение просто закрывается, и никаких исключений не выдается. Я установил попытку, чтобы увидеть, смогу ли я увидеть исключение, но отладчик просто останавливается на выражении LINQ и не попадает в ловушку или ничего не выполняет после этого, например, присвоение folderId впоследствии; как я уже сказал, он просто закрывает программу. Есть идеи?

Item folder = null;
            try
            {
                folder = entities.Items.Where(i => i.Path + "\\" == folderPath).FirstOrDefault();
            }
            catch(Exception)
            {
                Console.WriteLine("What is it??!!");
            }
            int folderId = folder == null ? 0 : folder.ID;

FolderPath является допустимой строкой. Уже проверил, и это то, что я ожидаю.

1 ответ

Чего бы вы ожидали? Делаете ли вы что-нибудь после того, как folder?

FirstOrDefault () либо возвращает значение по умолчанию, либо первый элемент.

Если вы ничего не сделаете с этим потом, ничего не произойдет. Приложение, которое запускается до конца, завершается автоматически.


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

Другие вопросы по тегам