0

我有两个表,我在 ctx.dbml 文件中关联的文章和状态。

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 从来没有给我article.Status.name。我在互联网上看到过这样的代码,所以我一定遗漏了一些东西。请帮忙。

4

1 回答 1

4

要按照您的意愿进行操作,您必须在两个表之间建立关联。

如何:在 LINQ to 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 错误。

于 2011-06-07T13:13:38.183 回答