下面是我经常遇到的情况:我有Parent和Child对象,并且Child对象有一个Parent属性。我想运行一个查询,得到的子对象,并加入每一个正确的父对象:什么是选择和组合对象与LINQ的正确方法?
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,但与之后的代码(假)执行语句执行。我可以想出很多方法来实现最终目标,但它们都有更多的代码行和/或创建临时对象或函数,我觉得它们不够优雅。 (注意,这是VB.NET语法,但它不是VB语法问题,因为AFAIK C#会有同样的问题。)
那么最干净的方法来做我想做的事情?人们询问我使用的是什么ORM,但这实际上是一个普通的vanilla LINQ问题;我没有试图将其转换为在服务器上运行的逻辑,我只是希望在查询在服务器上运行后,运行代码客户端的一些语法糖。
如果x和y是表记录,代码中的x.Parent是什么? – Paul 2011-12-28 18:22:27
如果您说明了您正在使用哪个提供商,它可能会有所帮助。 Linq-to-SQL,Linq-to-Entities等,此外如果您可能碰巧在使用EF Code First。 – 2011-12-28 18:24:10
它们只是来自我的ORM的强类型对象,但实际上这同样适用于Linq To Objects。 – 2011-12-28 18:25:34