我有商务舱。在这个商务舱中有:
- 访问数据库的上下文(通过 .dbml)
- 一些方法
此业务类中的 SaveUser(User user)
方法由 Web 服务调用。此方法接收修改后的 User
对象。如何通过作为参数接收的对象的值更新数据库中的记录(字段值具有预期值)?
我试过这个:
context.Users.Attach(user);
context.SubmitChanges();
我试过没有最后一行,同样......数据库没有变化。
有什么想法吗?
谢谢,
更新 1
public class RightManager
{
private readonly DBDataContext dc;
public RightManager()
{
dc = new DBDataContext();
}
public User GetUser(int id)
{
User user = dc.GetTable<User>()
.Where(x => x.Id == id && x.IsEnable == true)
.SingleOrDefault<User>();
return user;
}
public void SaveUser(User user)
{
dc.Users.Attach(user);
}
}
最佳答案
当然,您通过参数接收的对象不是 User 对象。您必须从上下文中获取一个(通常通过 Id),更新所需的属性然后提交。
public void SaveUser (User user) {
var userToUpdate = context.Users.Where(u => u.Id == user.Id).Single();
userToUpdate.FirstName = user.FirstName;
userToUpdate.LastName = user.LastName;
context.SubmitChanges();
}
关于c# - 林克 2 SQL : update record via a web service,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7346965/