gpt4 book ai didi

c# - 是否可以在单个 LINQ 查询中完成所有这些操作?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:56:58 26 4
gpt4 key购买 nike

我有这样的功能

private List<Score> getPageNRows ( int N )
{
// Returns object corresponding to the rows of the table
// on "page" N of the scores page
return (from s in this._SD.Scores
orderby s.score1 descending
select s)
.Skip(ScoresController._scoresPerPage * (N - 1))
.Take(ScoresController._scoresPerPage * N)
.ToList();
}

其中 Score定义为

public partial class Score
{
public Score()
{
GameLogs = new HashSet<GameLog>();
}

public int id { get; set; }

[Column("score")]
public int score1 { get; set; }

[StringLength(50)]
public string name { get; set; }

public DateTime playdate { get; set; }

public virtual ICollection<GameLog> GameLogs { get; set; }
}

在这里,我真正想要的是 List<ViewScore>其中 ViewScore

定义
public class ViewScore
{
public int score { get; set; } // corresponds directly to score1 in Score class
public string name { get; set; } // corresponds directly to name in Score
public string datestr { get; set; } // corresponds to playdate.ToString()
}

这是否可以在 LINQ 查询中完成所有操作,或者我是否需要创建辅助方法?

至少,我如何只选择列 s.score1 , s.names.playdate而不是全部(通过 select )?

最佳答案

是的,你可以像这样用Linq来做

return this._SD.Scores
.OrderByDescending(s => s.score1)
.Skip(ScoresController._scoresPerPage * (N - 1))
.Take(ScoresController._scoresPerPage * N))
.Select(s => new ViewScore { score = s.score1, name = s.name, datestr = s.playdate.ToString() })
.ToList();

关于c# - 是否可以在单个 LINQ 查询中完成所有这些操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33448655/

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