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