gpt4 book ai didi

c# - 带更新查询的 Linq

转载 作者:行者123 更新时间:2023-12-02 03:44:49 26 4
gpt4 key购买 nike

如何为 linq 编写这样的查询?最近开始学linq,还是看不懂。

string update = @"UPDATE Users SET Score = Score + @score,
Bonus = Bonus + @bonus
WHERE Username = @username";
cmd = new SqlCommand(update, con);
cmd.Parameters.AddWithValue("@username", txtUsername.Text);
cmd.Parameters.AddWithValue("@score", txtScore.Text);
cmd.Parameters.AddWithValue("@bonus", txtBonus.Text);
con.Open();
cmd.ExecuteNonQuery();
XtraMessageBox.Show("Updated!");
con.Close();

我不知道为什么 linq 中没有“Set”子句...顺便说一句,我正在使用 Entity Framework

最佳答案

Linq 中不使用 update 关键字。您可以按如下方式执行更新:

var users = (from p in Context.Users
where p.Username == username
select p).ToList().ForEach(x =>
{
x.Score += score;
x.Bonus += bonus;
});
Context.SaveChanges();

或者,如果您不想使用 lambda 表达式,也可以这样做:

var users = (from p in Context.Users
where p.Username == username
select p).SingleOrDefault();

foreach (var user in users)
{
user.Score += score;
user.Bonus += bonus;
}

Context.SaveChanges();

关于c# - 带更新查询的 Linq,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47101481/

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