c# - 合并来自 SelectMulti 元组的结果
问题描述
这是我的查询
var query = db.From<DataModels.Task>()
.Join<DataModels.Assignment>((task, assignment) => task.TaskID == assignment.TaskID)
.LeftJoin<DataModels.Association>((task, association) => task.TaskID == association.TaskID)
请注意,一项任务将有 1 个或多个分配和零个或多个关联。Task
因此,对于每个分配匹配和每个关联匹配,我实际上都得到了重复(元组 item1)。我的Task
对象包含只需要从结果集中填充的属性 List 和 List。有没有简单的方法来合并这些?
这是我目前拥有的,有效但效率不高
var tasks = results.Select(x=>x.Item1)
.GroupBy(x => x.TaskID)
.Select(x => x.First())
.ToHashSet();
var assignments = results.Select(x => x.Item2).ToHashSet();
var associations = results.Select(x => x.Item3).ToHashSet();
foreach (var task in tasks)
{
task.TaskAssignments = assignments.Where(x => x.TaskID == task.TaskID).ToList();
task.TaskAssociations = associations.Where(x => x.TaskID == task.TaskID).ToList();
}
解决方案
推荐阅读
- python - 用另一个字符替换一个字符序列
- javascript - React 和 Material UI:如何仅扩展一张卡片
- python - 原始 f 字符串 SyntaxError
- hazelcast - Hazelcast mancenter 分区组监控
- r - 在 R 中为主题建模预处理文本时得到奇怪的字符
- c# - 如何在 WPF 中取消被阻止的任务
- javascript - WebView .reload() 在 iOS 上无法正常工作
- java - 错误:缺少包语句“src”,但仍然可以在 IntelliJ 中运行代码
- spring-cloud-dataflow - 组合任务自定义条件
- apache-spark - Kafka Avro 到 Elasticsearch 与 Spark