Linq to Sql 从多个表中选择

发布于 2024-09-02 22:20:32 字数 673 浏览 7 评论 0原文

我有一个关于使用 Linq 从 C# 中的多个表中进行选择的问题。

表结构是这样的:

TABLE A
表AID 第1栏 第 2

表 B 列
TableBID TableAID Column3 Column4

所以在代码中我有:

List<string> myList = new List{"Test1","Test2"};
var myView = MYDC.TableA.AsQueryAble();

如果我想使用 Column1 上的 where 从表 A 中选择记录,我只需使用:

myView = myView.Where(k=>myList.Contains(k.Column1));

但是如果我想将 myView 保留为 TableA 的可查询状态并且如果我想使用TableB 上的 Column3 上的哪里,它通过外键链接到 TableA,我该怎么做?

我尝试了以下方法但没有成功:

myView = myView.Where(k=>myList.Contains(k.TableB.Select(kk=>kk.Column3)));

有什么建议吗?

提前致谢

I have a question about selecting from multiple tables in C# using Linq.

Table structure is like this:

TABLE A
TableAID
Column1
Column2

TABLE B

TableBID TableAID Column3 Column4

So in code i have:

List<string> myList = new List{"Test1","Test2"};
var myView = MYDC.TableA.AsQueryAble();

If I want to select records from table A using where on Column1, I would simply use:

myView = myView.Where(k=>myList.Contains(k.Column1));

But if I want to preserve the myView as queryable of TableA and if I want to use where on TableB on Column3, which is linked to TableA with a foreign key, how would I do it?

I tried the following with no success:

myView = myView.Where(k=>myList.Contains(k.TableB.Select(kk=>kk.Column3)));

Any suggestions?

Thanks in advance

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

肩上的翅膀 2024-09-09 22:20:32

有几种方法可以做到这一点。以下是其中两个:

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;

我希望这会有所帮助。

There are several ways to to this. Here are two of them:

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;

I hope this helps.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文