gpt4 book ai didi

c# - 一次访问数据库就可以在 LINQ 中更新?

转载 作者:行者123 更新时间:2023-11-30 18:02:46 28 4
gpt4 key购买 nike

当 LINQ 访问数据库时,我很难理解它是如何知道最佳时间的。主要是,这个 UPDATE 语句似乎对数据库进行了两次访问。但它不应该——在 LINQ 中似乎没有等同于查询一行、更新它然后保存该更改的“更新”。在基本 SQL 中,我应该能够一次性更新 WHERE。

var query = from u in db.users where u.id == 1 select u;
foreach (user u in query)
{
u.name = "JOE";
}
db.Save();

我得到了保存的魔力。它允许我在提交之前进行多项更改。但似乎仍然存在对行的初始查询。

想法?想法?

编辑

现在经过测试,我可以确认它确实访问了数据库两次。一定有更好的方法!

最佳答案

如果id是主键,你可以使用:

var u = new user { id = 1 };
db.users.Attach(u);
u.name = "JOE";
db.SubmitChanges();

关于c# - 一次访问数据库就可以在 LINQ 中更新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7947780/

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