使用LINQ Where子句按关联表中的数据进行筛选

本文关键字:数据 筛选 Where LINQ 子句 关联 使用 | 更新日期: 2023-09-27 17:58:46

我在ctx.dbml文件中关联了两个表Articles和Statues。

Articles
id:int
title:varchar(255)
status_id:int
Statuses
id:int
name:varchar(255)

我想做的是过滤所有具有特定状态的文章。假设地说,类似于:

var filteredArticles = from article in ctx.Articles
                       where article.Status.name == "Active"
                       select article;

我遇到的问题是,在上面的linq查询第二行中,Intellisense从未给我文章.Status.name。我在互联网上看到过这样的代码,所以我一定错过了什么。请帮忙。

使用LINQ Where子句按关联表中的数据进行筛选

要想做到这一点,必须在两个表之间建立关联。

如何:在LINQ到SQL类(O/R设计器)之间创建关联(关系)

或者,您也可以手动编写联接。

var activeArticles = from a in ctx.Articles
                     join s in ctx.statuses on a.status_id equals s.id
                     select a;

如果使用关联路由,请非常小心,不要提交SELECT N+1错误。

相关文章: