想象一下Azure Table存储中类似于上面的表 struct .
表1
Column A | Column B | Column C |
---|---|---|
"partitionkey1" | 101 | test |
"partitionkey1" | 102 | test |
"partitionkey1" | 103 | test |
"partitionkey2" | 201 | test |
表2,它基本上是我们想要添加和删除的素数实体的特殊子列表
Column A | Column B | Column C |
---|---|---|
"partitionkey1" | 101 | true |
"partitionkey1" | 102 | true |
"partitionkey1" | 103 | true |
"partitionkey2" | 201 | false |
我希望创建一个Linq查询,如下所示
如果T1中的列A与表2中的列A匹配
以(左侧列表大小也是右侧列表大小的10倍)格式返回结果集合
AreaName | rowkeys | prime status |
---|---|---|
"partitionkey1" | 101,102,103 | true |
"partitionkey2" | 201 | false |
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
});