gpt4 book ai didi

.net - 使用 LINQ 选择和组合对象的正确方法是什么?

转载 作者:行者123 更新时间:2023-12-04 16:40:49 25 4
gpt4 key购买 nike

这是我经常遇到的一种情况:我有 Parent 和 Child 对象,而 Child 对象有一个 Parent 属性。我想运行一个查询来获取子对象并将每个对象连接到正确的父对象:

Dim db = New DataContextEx()

get the children, along with the corresponding parent
Dim Children = From x In db.ChildTable
Join y In db.ParentTable
On x.ParentId Equals y.Id
Execute x.Parent = y <-- pseudocode
Select x

伪代码显示了我想要完成的任务:返回子对象 x 但在执行(假) Execute 语句之后使用代码。我可以想到很多方法来实现最终目标,但它们都有更多的代码行和/或临时对象或函数的创建,我觉得这些方法很不雅观。 (注意这是 VB.NET 语法,但它不是 VB 语法问题,因为 AFAIK C# 也会有同样的问题。)

那么做我想做的最干净的方法是什么?

编辑 :人们问我正在使用什么 ORM,但这确实是一个普通的 LINQ 问题;我不想将其转换为要在服务器上运行的逻辑,我只是​​想要一些语法糖在服务器上运行查询后运行代码客户端。

最佳答案

您可以在投影结果时使用匿名类型。 C# 示例:

var items = from x In db.ChildTable
join y In db.ParentTable on x.ParentId equals y.Id
select new { Child =x , Parent=y };

然后分配父属性。
foreach(var item in items)
{
item.Child.Parent = item.Parent;
}

return items.Select(item => item.Child);

此外,您可能想为此使用一些 ORM 解决方案,而不是自己滚动解决方案。

关于.net - 使用 LINQ 选择和组合对象的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8659647/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com