我有一个关于使用Linq从C#中选择多个表的问题。
表结构如下:
表A TableAID 列1 列2
表B.
TableBID TableAID Column3 Column4
所以在代码中我有:
List<string> myList = new List{"Test1","Test2"};
var myView = MYDC.TableA.AsQueryAble();
如果我想使用Column1上的位置从表A中选择记录,我只需使用:
myView = myView.Where(k=>myList.Contains(k.Column1));
但是如果我想将myView保存为可查询的TableA,并且如果我想在Column3上的TableB上使用哪个地方,那么使用外键链接到TableA,我该怎么做?
我尝试了以下但没有成功:
myView = myView.Where(k=>myList.Contains(k.TableB.Select(kk=>kk.Column3)));
有什么建议吗?
提前致谢
答案 0 :(得分:0)
有几种方法可以做到这一点。以下是其中两个:
var q = (
from b in MYDB.TableB
where myList.Contains(b.Column3)
select b.TableA).Distinct();
var q =
from a in myView
let bs = a.TableB.Where(b => myList.Contains(b.Column3))
where bs.Any()
select a;
我希望这会有所帮助。