Linq中具有2个以上数据表的内部联接
我有三张桌子 t1==> t2==> t3==> 我希望使用Linq在所有三个表之间进行内部联接,并希望在第四个数据表中选择列 等效sql查询:Linq中具有2个以上数据表的内部联接,linq,datatable,Linq,Datatable,我有三张桌子 t1==> t2==> t3==> 我希望使用Linq在所有三个表之间进行内部联接,并希望在第四个数据表中选择列 等效sql查询: SELECT t1.ID,t2.col1,t3.col2 FROM t1 INNER JOIN t2 ON t1.ID=t2.ID INNER JOIN t3 ON t1.ID=t3.ID t4==> 像这样的 var Result = from row1 in t1 join row2 in t2 on row1.ID eq
SELECT t1.ID,t2.col1,t3.col2
FROM t1
INNER JOIN t2 ON t1.ID=t2.ID
INNER JOIN t3 ON t1.ID=t3.ID
t4==>
像这样的
var Result =
from row1 in t1
join row2 in t2 on row1.ID equals row2.ID
join row3 in t3 on row1.ID equals row3.ID
select new { ID = row1.ID, Col1 = row2.col1, Col2 = row3.col2 }
DataTable dt = Result.CopyToDataTable();
像这样的
var Result =
from row1 in t1
join row2 in t2 on row1.ID equals row2.ID
join row3 in t3 on row1.ID equals row3.ID
select new { ID = row1.ID, Col1 = row2.col1, Col2 = row3.col2 }
DataTable dt = Result.CopyToDataTable();
使用LoadDataRow从匿名类型获取DataTable,如下所示。Else Result.CopyToDataTable
使用LoadDataRow从匿名类型获取DataTable,如下所示。Else Result.CopyToDataTable
欲速则不达Thanks@voo:谢谢你的回复:。我做了几乎相同的操作,但如何将var结果转换为datatable?@WebDevelopmentHurricane,请检查我的答案,您需要使用CopyToDataTable方法……但老实说,您不想使用datatable。就像,永远:-。欲速则不达Thanks@voo:谢谢你的回复:。我做了几乎相同的操作,但如何将var结果转换为datatable?@WebDevelopmentHurricane,请检查我的答案,您需要使用CopyToDataTable方法……但老实说,您不想使用datatable。例如,ever:-。它不适用于选择选定的列。选择x.CopyToDataTable;它工作正常,但是当new{ID=x.ID,col1=y.col1,col2=z.col2}.CopyToDataTable;-它不适用于选择选定的列。选择x.CopyToDataTable;它工作正常,但是当new{ID=x.ID,col1=y.col1,col2=z.col2}.CopyToDataTable;-没有
SELECT t1.ID,t2.col1,t3.col2
FROM t1
INNER JOIN t2 ON t1.ID=t2.ID
INNER JOIN t3 ON t1.ID=t3.ID
t1.ID t2.co1 t3.col2
1 a b
2 a b
var Result =
from row1 in t1
join row2 in t2 on row1.ID equals row2.ID
join row3 in t3 on row1.ID equals row3.ID
select new { ID = row1.ID, Col1 = row2.col1, Col2 = row3.col2 }
DataTable dt = Result.CopyToDataTable();
//Get the column list as same as table1 to new datatable
DataTable table4 = table1.Clone();
var Result =
from x in t1.AsEnumerable() join
y in t2.AsEnumerable() on x.Field<int>("ID") equals y.Field<int>("ID") join
z in t3.AsEnumerable() on x.Field<int>("ID") equals z.Field<int>("ID")
select new table4.LoadDataRow(
new object[] {
x.ID,
y.col1,
z.col2
}, false);