使用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到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错误。