【发布时间】:2019-06-18 07:12:21
【问题描述】:
我有以下几点:
var nodes = _nodeService.GetNodeChildren(id, nId);
var association = _nodeService.GetNodeOrder(id, nId);
var joinedNodes = nodes.Join(association,
n => n.Id,
a => a,
(n, a) => new {nodes = n, association = a};
var enumerable = joinedNodes.ToList();
var orderedNodes = enumerable.OrderBy(x => x.association);
return orderedNodes.nodes;
其中节点是对象列表,关联是 GUID 列表。
问题是我没有按预期取回订单。
我需要根据 GUIDS 位置的顺序返回一个节点列表。
以下是部分测试代码
_ngOrder = new List<Guid>
{
_nodeId2,
_nodeId1,
_nodeId4,
_nodeId3,
}
_nodeClient.SetNodeOrder(_ngOrder);
当我得到方法并断言这里是代码:
Assert.That(_response[0].Id, Is.EqualTo(_node2Id);
Assert.That(_response[1].Id, Is.EqualTo(_node1Id);
Assert.That(_response[2].Id, Is.EqualTo(_node4Id);
Assert.That(_response[3].Id, Is.EqualTo(_node3Id);
【问题讨论】:
-
节点和关联的类型有哪些?
-
您为什么使用 GroupJoin?单个节点可以有多个关联吗?
-
抱歉编辑应该是加入而不是grp加入,并且类型是对象列表和提到的OG guid列表
-
那么现在做:association.Join(nodes, not nodes.Join(association
-
请注意,GUID 实际上是一个数值,通常以格式化方式表示(十六进制值和一些破折号)。也许数字排序可能与表示的字母排序不同?
标签: c# linq cassandra guid .net-standard-2.0