我的查询是TableA
,TableB
,TableC
和TableD
等几个表的连接,最后我说{{1}使用它返回的tableA roecrds。
然后我又有另一个查询,其select tableA
与第一个查询完全相同,但唯一不同的是,最后我这次说tables, joins and where clause
所以我的问题是,我可以将它们组合在一起,这样我就不必再运行两次查询了吗?
select tableB
答案 0 :(得分:1)
创建一个具有tg,te等的类。
然后只查询一次:
var listOfThings = (from ta in this.Context.TableA
join tb in this.Context.TableB on ta.Id equals tb.Id
join tc in blah
join td in blah
join te in blah
join tf in blah
join tg in blah
where (someConditionIsTrueOk)
select new YourNewClass { Tg = tg, Te = te, and so on }).ToList();
或者如Grant所说,如果你不需要结构,你可以选择一个匿名对象:
var query = (from ta in this.Context.TableA
join tb in this.Context.TableB on ta.Id equals tb.Id
...
...
where (someConditionIsTrueOk)
select new {tg, te}).ToList();
答案 1 :(得分:1)
您可以在表格中选择多个表格或列,然后将它们组合成一个匿名类,然后即时创建:
var result = (from ta in this.Context.TableA
join tb in this.Context.TableB on ta.Id equals tb.Id
...
...
where (someConditionIsTrueOk)
select new {ta, tb}).ToList();
var firstTableA = result[0].ta;
var firstTableB = result[0].tb;