gpt4 book ai didi

c# - 更新记录 Linq-to-SQL

转载 作者:行者123 更新时间:2023-11-30 17:15:31 25 4
gpt4 key购买 nike

我正在读一本书 - ASP.Net 3.5 Enterprise Application Development with Visual Studio 2008,当它谈到使用 Linq-to-SQL 更新数据库中的记录时,它使用以下代码:

MyUserAccount ua = new MyUserAccount
{
... Update fields
};

ua.UserAccountID = Convert.ToInt32(session["UserAccountID"]);
ua.Version = Convert.ToInt32(session["Version"]);

MyDataContext db = new MyDataContext();
db.MyUserAccounts.Attach(ua,true);
db.SubmitChanges();

与我习惯的做法不同,我只是将 AccountID 保存在 session 变量中然后从数据库中获取记录,进行我的修改,然后提交修改。

Btn更新

int UserAccountID = Convert.ToInt32(Request["UserAccountID"]);

//Get User fron Context
MyDataContext db = new MyDataContext();
MyUserAccount ua = db.MyUserAccounts.Single(
x => x.UserAccountID == UserAccountID);

//Make changes
ua.Blah = "";

db.SubmitChanges();

所以我的问题是,执行此操作的首选方法是什么?过去没有见过这种情况,我不确定首选或最佳方式是什么。感谢您的帮助。

韦德

注意:

有人更改了我的标题,我最初的问题是什么是更新记录的最佳 Linq-to-SQL 方式。所以我更改了代码以使用 session 变量并将标题恢复为原始标题。请阅读整个问题,因为我只是在寻找使用 Linq-to-SQL 更新数据库中记录的最佳方法。

最佳答案

在生成的sql方面,前者会生成类似的Sql语句

Update MyUserAccount set blah=@Blah where UserAccountID = @UserAccountID

而后者会产生

Select UserAccountID, Blah, ....  From MyUserAccount where UserAccountID = @UserAccountID
Update MyUserAccount set blah=@Blah where UserAccountID = @UserAccountID

关于c# - 更新记录 Linq-to-SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7957443/

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