【发布时间】:2011-05-27 16:27:15
【问题描述】:
我的数据库很糟糕,所以请多多包涵。
我有一个程序可以获取一些用户信息并将其添加到数据库表中。然后,我稍后需要获取该表的更多信息,并对其进行更新。为此,我尝试过这样做:
public static void updateInfo(string ID, string email, bool pub)
{
try
{
//Get new data context
MyDataDataContext db = GetNewDataContext(); //Creates a new data context
//Table used to get user information
User user = db.Users.SingleOrDefault(x => x.UserId == long.Parse(ID));
//Checks to see if we have a match
if (user != null)
{
//Add values
user.Email = email;
user.Publish = publish;
}
//Prep to submit changes
db.Users.InsertOnSubmit(user);
//Submit changes
db.SubmitChanges();
}
catch (Exception ex)
{
//Log error
Log(ex.ToString());
}
}
但我收到此错误:
System.InvalidOperationException:无法添加已存在的实体。
我知道这是因为我已经在表格中有一个条目,但是我不知道如何编辑代码来更新,而不是尝试制作一个新的?
为什么这不起作用?提交对当前项目的更改不会更新该项目而不是创建一个新项目吗?
【问题讨论】:
标签: c# database linq linq-to-sql