2016-05-02 3 views
0

Я придумал некоторый код LINQ, чтобы объединить несколько таблиц вместе с несколькими полями «динамически», что означает, что пользователь выбирает таблицу и поле, к которому он хочет присоединиться. Но у меня есть трудное время scalling это несколько таблиц с вне делать, как я купол здесь:Масштабировать заявление о присоединении LINQ к нескольким таблицам

if (Tables.Count == 2) 
{ 
    result = from dataRows1 in Tables[0].AsEnumerable() 
      join dataRows2 in Tables[1].AsEnumerable() 
      on new ComparableObject(new List<DataRow> { dataRows1 },KeyFieldToJoinOn[0].Item1) 
      equals new ComparableObject(dataRows2, KeyFieldToJoinOn[0].Item2) 
      select dtResult.LoadDataRow(
       dataRows1.ItemArray.Concat(dataRows2.ItemArray) 
       .ToArray(), false); 
} 
else if (Tables.Count == 3) 
{ 
    result = from dataRows1 in Tables[0].AsEnumerable() 
      join dataRows2 in Tables[1].AsEnumerable() 
      on new ComparableObject(new List<DataRow> { dataRows1 }, KeyFieldToJoinOn[0].Item1) 
      equals new ComparableObject(dataRows2, KeyFieldToJoinOn[0].Item2) 
      join dataRows3 in Tables[2].AsEnumerable() 
      on new ComparableObject(new List<DataRow> { dataRows1, dataRows2 },KeyFieldToJoinOn[1].Item1) 
      equals new ComparableObject(dataRows3, KeyFieldToJoinOn[1].Item2) 
      select dtResult.LoadDataRow(
       dataRows1.ItemArray.Concat(dataRows2.ItemArray) 
       .Concat(dataRows3.ItemArray) 
       .ToArray(),false); 
} 

Я видел динамическую библиотеку, LINQ, но я не видел много исчерпывающей документации о том, как присоединиться dynamiclly. Все это происходит из-за того факта, что я не могу выполнить запрос sql в таблице данных, которая упростит ситуацию, потому что я мог бы построить свой запрос.

Благодарим за любые советы.

ответ

0

На мой взгляд, вы должны использовать цикл foreach для итерации по таблице вместо того, чтобы писать эти условия if else. Вы также можете использовать LINQ для фильтрации содержимого таблицы в соответствии с вашим требованием.

Смежные вопросы