使用 LINQ 根据匹配的 Id 查询两个表并返回具有 id 的数据结构

问题描述 投票:0回答:1

想象一下 Azure 表存储中类似上面的表结构。

表1

A 栏 B 栏 C 栏
“分区键1” 101 测试
“分区键1” 102 测试
“分区键1” 103 测试
“分区键2” 201 测试

表 2 基本上是我们要添加和删除的主要实体的特殊子列表

A 栏 B 栏 C 栏
“分区键1” 101 真实
“分区键1” 102 真实
“分区键1” 103 真实
“分区键2” 201

我希望按照

的思路创建一个 linq 查询

如果 t1 中的 A 列与表 2 中的 a 列匹配

以以下格式返回结果集合(左侧列表大小也是右侧列表大小的 10 倍)

地区名称 行键 首要地位
“分区键1” 101,102,103 真实
“分区键2” 201
            var ACollection = await _ACollectionRepository.GetAll();
            var BCollection = await _BCollectionRepository.GetAll();

            var lft = ACollection.Where(x => !string.IsNullOrEmpty(x.PartitionKey)).ToList();
            var right = BCollection.Where( x=> !string.IsNullOrEmpty(x.PartitionKey)).ToList();

            var joinQuery = (from l in lft
                             join r in right on l.PartitionKey equals r.PartitionKey into joinedList
                             from item in joinedList.DefaultIfEmpty()
                             select new 
                             {
                                 l.PartitionKey,
                                 ///not sure what to do here ,
                                 item?.prime_status ?? false
                             });
c# linq azure-table-storage
1个回答
0
投票

GroupBy 按分区键对项目进行分组,然后使用字符串。Join 来连接行键

RowKeys = string.Join(",", bGroup.Select(x => x.ColumnB)),
                PrimeStatus = bGroup.Any(x => x.ColumnC)
© www.soinside.com 2019 - 2024. All rights reserved.