У меня есть два списка.
Первый - это список задач, извлекаемых из API (APITasks), второй - список задач, которые я имею в своей локальной БД SQL. Инструмент позволяет пользователям «требовать» APITask и записывать эти заявки локально, сохраняя TaskIssueId.
Может случиться так, что время от времени удаляется APITask. У моего инструмента есть код, который заметит это и сообщит об этом пользователю, когда он перечислит все свои «заявленные» задачи.
Теперь проблема, с которой я сталкиваюсь, состоит в том, чтобы получить задачи пользователя, которые будут отсортированы через APITasks (отсортированный по AnotherInternalId, который является другим Id, сложным и неактуальным), и если какая-либо задача больше не доступна, она все еще отображается (с моим кодом, перехватывающим исключение и отображение сообщения).
Вот мой sql запрос:
myTasks = (from m in myTasksFiltered
join d in APITasks on m.TaskIssueId equals d.TaskIssueId
into joinedData
from d in joinedData.DefaultIfEmpty()
let index = (int?)d.AnotherInternalId ?? 0
orderby index
select m).ToList();
Эта нить помогла создать этот запрос, но я продолжаю получать ошибку исключения из нулевой ссылки, потому что, когда запрос достигает локальной задачи, которой нет в APITask, d
становится нулевым и все взрывается из есть.