Linq оставил внешнее соединение - PullRequest
2 голосов
/ 21 апреля 2011

Мне, в конечном счете, нужна общая функция, которая будет принимать две таблицы данных и две таблицы и возвращать присоединенную таблицу данных. Вот мой первый шаг к ее решению.

Как я могу написать пример Linq следующего примера T-SQL в VB?

SELECT * FROM
Table1
LEFT OUTER JOIN
Table2
ON Table1.key = Table2.key

Ответы [ 2 ]

3 голосов
/ 21 апреля 2011

Было бы что-то вроде этого:

Dim JoinedResult = From t1 In Table1 
    Group Join t2 In Table2 
       On t1.key Equals t2.key 
       Into RightTableResults = Group 
    From t2 In RightTableResults.DefaultIfEmpty 
    Select t1.Prop1, 
       t2.Prop2        

Я не VB парень (больше), но я думаю, что это будет работать.

0 голосов
/ 21 апреля 2011

Вы можете просто использовать существующий метод Join

public static IEnumerable<TResult> Join<TOuter, TInner, TKey, TResult>(
    this IEnumerable<TOuter> outer,
    IEnumerable<TInner> inner,
    Func<TOuter, TKey> outerKeySelector,
    Func<TInner, TKey> innerKeySelector,
    Func<TOuter, TInner, TResult> resultSelector
)

Например:

table1.Join(table2, t1 => t1.Key, t2 => t2.Key, (t1, t2) => new { Table1 = t1, Table2 = t2 });

можно найти больше перегрузок и примеров http://msdn.microsoft.com/en-us/library/system.linq.enumerable.join.aspx

Простите за c #примеры

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...