我有一个包含节点列表(带有属性ID和名称)的表,以及一个带有节点属性列表的第二个表(带有对应节点ID的父对象)。我通常查询节点,然后获取其属性,以填充对象
public class NodeWithAttributes
{
public Node Node = new Node();
public List<NodeAttribute> NodeAttributes = new List<NodeAttribute>();
}
但是,当我想查询“NodeWithAttributes&#39;事情变得复杂。我试图通过Parent将属性组合在一起,然后将它们分配给对象 - 类似于:
var results = (from n in dbNodes.Nodes
join na in dbNodes.NodeAttributes on n.ID equals na.Parent
group na by na.Parent
into g
select new NodeWithAttributes
{
Node = n,
NodeAttributes = g
}
).ToList();
但我似乎只能返回该组,而不是基于它的对象。如何返回NodeWithAttributes列表?
答案 0 :(得分:0)
我认为在您的情况下无需按数据分组。如果您希望Parent Children尝试使用类似于以下的查询。
var query = from c in north.Customers
orderby c.CustomerID
select new
{
customer = c,
orders = c.Orders
};
foreach (var item in query)
{
Console.WriteLine(item.customer.CompanyName);
foreach (var ord in item.orders)
{
Console.WriteLine(ord.OrderDate + " " + ord.OrderID);
}
Console.WriteLine("");
}