笨鸟又有问题想请教大虾们啦,呵呵,我现在有多个DataTable在内存中,假设就三个吧,分别为:table1、table2、table3 我现在就是想用Linq写一个方法来对三个数据表中的数据进行联合查询得到自己所想要的结果集,当然,这个结果集可能从不同的方法进来取得时候所需要的列信息会有所不同,我现在就是想问:是不是每个不同列信息的就必须新建一个查询呢?也就是说,如下吧
比如从第一个地方进来我需要:A、B、C三列就可以写成如下:
var query1 =from t1 in table1.AsEnumerable()
from t2 in table2.AsEnumerable()
from t3 in table3.AsEnumerable()
where t1.field<string>("Id")==t2.field<string>("guid")
where t2.field<string>("hId")==t3.field<string>("TId")
select new
{
A=....,
B=....,
C=....
};
那如果我第二次从另外一个地方进来我需要的是:E、F、G、H 四列,是不是又要重写一遍如下:
var query2 =from t1 in table1.AsEnumerable()
from t2 in table2.AsEnumerable()
from t3 in table3.AsEnumerable()
where t1.field<string>("Id")==t2.field<string>("guid")
where t2.field<string>("hId")==t3.field<string>("TId")
select new
{
E=....,
F=....,
G=....,
H=....
};
这样呢??其实他们就只是列不同而已,可不可以上面那一段公用一下,下面的就来判断,然后决定用哪些列信息呢??还是说必须就得这样呢??各位大虾,请给小弟给给建议吧,谢谢啦!!
比如从第一个地方进来我需要:A、B、C三列就可以写成如下:
var query1 =from t1 in table1.AsEnumerable()
from t2 in table2.AsEnumerable()
from t3 in table3.AsEnumerable()
where t1.field<string>("Id")==t2.field<string>("guid")
where t2.field<string>("hId")==t3.field<string>("TId")
select new
{
A=....,
B=....,
C=....
};
那如果我第二次从另外一个地方进来我需要的是:E、F、G、H 四列,是不是又要重写一遍如下:
var query2 =from t1 in table1.AsEnumerable()
from t2 in table2.AsEnumerable()
from t3 in table3.AsEnumerable()
where t1.field<string>("Id")==t2.field<string>("guid")
where t2.field<string>("hId")==t3.field<string>("TId")
select new
{
E=....,
F=....,
G=....,
H=....
};
这样呢??其实他们就只是列不同而已,可不可以上面那一段公用一下,下面的就来判断,然后决定用哪些列信息呢??还是说必须就得这样呢??各位大虾,请给小弟给给建议吧,谢谢啦!!
这里不知道你的DataTable是否强类型的