Lan*_*usT 4 .net c# linq left-join
我有两个清单.第一个是从API(APITasks)中提取的任务列表,第二个是我在本地SQL DB上的列表任务.该工具允许用户"声明"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();
Run Code Online (Sandbox Code Playgroud)
这个线程帮助创建了该查询,但是我一直得到一个空引用异常错误,因为当查询到达APITask中不存在的本地任务时,d变为null并且一切都从那里爆炸.
你需要检查d不是null,而不是AnotherInternalId
myTasks = (from m in myTasksFiltered
join d in APITasks on m.TaskIssueId equals d.TaskIssueId
into joinedData
from d in joinedData.DefaultIfEmpty()
let index = d == null ? 0 : d.AnotherInternalId
orderby index
select m).ToList();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2361 次 |
| 最近记录: |