如何将 Sql 查询转换为 Linq 及其在 Entity Framework Core 中使用 Join() 方法的等价物
How can I convert Sql query to Linq and its equivalent with Join() method in Entity Framework Core
select
a.*
from
Article a join
ArticleTag at on a.Id = at.ArticleId join
Tag t on at.TagId = t.Id
where
t.Id=8
我还可以访问 IQueryable<Article>
、IQueryable<Tag>
和 IQueryable<ArticleTag>
对象。
如何将此 Sql 查询转换为 Linq 及其在 Entity Framework Core 中使用 Join()
方法和 lambda 表达式的等价物?
假设你有 IQueryable< ArticleTag > articleTags,文章列表可以通过
选择
articleTags.Where(a => a.Tag.id = 8).Select (a -> a.ArticleTag );
var innerJoinQuery =
from a in Article
join at in ArticleTag on a.Id equals at.ArticleId
where at.TagId == 8
select a;
这是最有效的方法。如果您使用 LINQ 扩展
,EF 可能会有些棘手 "things"
但如果你坚持...
var innerJoinResult =
Articles.Join(ArticleTags.Where(x => x.TagId == 8),
a => a.Id,
at => at.ArticleId,
(a, at) => a);
select
a.*
from
Article a join
ArticleTag at on a.Id = at.ArticleId join
Tag t on at.TagId = t.Id
where
t.Id=8
我还可以访问 IQueryable<Article>
、IQueryable<Tag>
和 IQueryable<ArticleTag>
对象。
如何将此 Sql 查询转换为 Linq 及其在 Entity Framework Core 中使用 Join()
方法和 lambda 表达式的等价物?
假设你有 IQueryable< ArticleTag > articleTags,文章列表可以通过
选择articleTags.Where(a => a.Tag.id = 8).Select (a -> a.ArticleTag );
var innerJoinQuery =
from a in Article
join at in ArticleTag on a.Id equals at.ArticleId
where at.TagId == 8
select a;
这是最有效的方法。如果您使用 LINQ 扩展
,EF 可能会有些棘手 "things"但如果你坚持...
var innerJoinResult =
Articles.Join(ArticleTags.Where(x => x.TagId == 8),
a => a.Id,
at => at.ArticleId,
(a, at) => a);