Как правильно выбирать и комбинировать объекты с помощью LINQ?

Вот ситуация, с которой я часто сталкиваюсь: у меня есть объекты 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; Я не пытаюсь преобразовать это в логику для запуска на сервере, я просто хочу, чтобы некоторый синтаксический сахар запускал клиентскую часть кода после того, как запрос был запущен на сервере.

5
задан asawyer 28 December 2011 в 18:29
поделиться