gpt4 book ai didi

.net - linq to sql将这个查询翻译成: "select *"?格式是不是效率低下

转载 作者:太空狗 更新时间:2023-10-30 02:00:25 24 4
gpt4 key购买 nike

我对 Linq to SQL 还不是很熟悉,但让我印象深刻的是:

var articles = 
(from a in DB.Articles
where
a.ArticleId == ArticleId.Question &&
a.DeletedAt == null &&
a.Votes >= minVotes
orderby a.UpdatedAt descending
select a).
Take(maxarticles);

翻译成这样:

string query = 
"select top 10 * from articles
where
ArticleId = 1 and
DeletedAt is null and
Votes >= -5
order by UpdatedAt desc";

令我印象深刻的是,linq to sql 愿意使用“select *”类型的查询清理所有内容。 这不是很低效吗?

linq to sql为什么要这样做?

最佳答案

如果您想选择较少的列,则必须在 linq 查询中使用投影。

var articles = (from a in DB.Articles
where a.ArticleId == ArticleId.Question
&& a.DeletedAt == null
&& a.Votes >= minVotes
orderby a.UpdatedAt descending
select new
{
a.ArticleId,
a.Votes
})
.Take(maxarticles);

像上面这样的操作会转换成如下所示的 SQL...

select top 10 
ArticleId,
Votes
from articles
where ArticleId = 1
and DeletedAt is null
and Votes >= -5
order by UpdatedAt desc

关于.net - linq to sql将这个查询翻译成: "select *"?格式是不是效率低下,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1319157/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com