C# LINQ2SQL:通过web服务更新记录
我有商务舱。本商务舱包括:C# LINQ2SQL:通过web服务更新记录,c#,linq-to-sql,C#,Linq To Sql,我有商务舱。本商务舱包括: 访问数据库的上下文(通过.dbml) 一些方法 Web服务调用此业务类中的SaveUser(User User)方法。此方法接收修改后的用户对象。如何通过对象receive as参数的值(字段值具有预期值)更新数据库中的记录 我试过这个: context.Users.Attach(user); context.SubmitChanges(); 我试过没有最后一行,同样。。。数据库中没有任何更改 有什么想法吗 谢谢 更新1 public class RightMan
SaveUser(User User)
方法。此方法接收修改后的用户
对象。如何通过对象receive as参数的值(字段值具有预期值)更新数据库中的记录
我试过这个:
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);
}
}
公共类RightManager
{
私有只读DBDataContext dc;
公共权利经理()
{
dc=新的DBDataContext();
}
公共用户GetUser(int-id)
{
User=dc.GetTable()
.Where(x=>x.Id==Id&&x.IsEnable==true)
.SingleOrDefault();
返回用户;
}
公共void SaveUser(用户)
{
dc.Users.Attach(用户);
}
}
当然,通过参数接收的对象不是用户对象。您必须从上下文中获取一个(通常通过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();
}
您可以使用attach方法的重载之一
查看此帖子:欢迎使用一些代码,如果不查看代码,我们就无法真正了解您做错了什么。请查看以下相关问题:@brunoconde我试过了,数据库中没有任何更改