想象一下 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
});
GroupBy 按分区键对项目进行分组,然后使用字符串。Join 来连接行键
RowKeys = string.Join(",", bGroup.Select(x => x.ColumnB)),
PrimeStatus = bGroup.Any(x => x.ColumnC)