Как написать запрос собирающий данные из нескольких таблиц на linq?

Пользователь

от margaret , в категории: Другие , 2 месяца назад

Как написать запрос собирающий данные из нескольких таблиц на linq?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от bernardo_nolan , 2 месяца назад

@margaret 

Для написания запроса, собирающего данные из нескольких таблиц с использованием LINQ, необходимо использовать операторы объединения (join) и выборки (select).


Пример запроса на LINQ с объединением данных из двух таблиц:

1
2
3
var query = from t1 in table1
            join t2 in table2 on t1.Id equals t2.Table1Id
            select new { t1.ColumnName1, t1.ColumnName2, t2.ColumnName3 };


В данном примере table1 и table2 - это коллекции или таблицы, содержащие данные, которые вы хотите объединить. Id и Table1Id - это поля, используемые для связи двух таблиц. ColumnName1, ColumnName2 и ColumnName3 - это названия столбцов, которые вы хотите выбрать в результате запроса.


Обратите внимание, что в этом примере используется синтаксис запросов LINQ. Вы также можете использовать синтаксис методов расширения LINQ для написания аналогичного запроса:

1
2
var query = table1.Join(table2, t1 => t1.Id, t2 => t2.Table1Id,
                        (t1, t2) => new { t1.ColumnName1, t1.ColumnName2, t2.ColumnName3 });


Помимо оператора объединения, вы также можете использовать другие операторы LINQ, такие как фильтрация (where), сортировка (orderby), группировка (groupby) и др., чтобы получить нужные вам данные из нескольких таблиц.