c# - 林克 2 SQL : update record via a web service

标签 c# linq-to-sql

我有商务舱。在这个商务舱中有:

  1. 访问数据库的上下文(通过 .dbml)
  2. 一些方法

此业务类中的 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/

相关文章:

c# - Windows 8 应用程序 WebView 捕获事件目标 ="_blank"

c# - 有没有一种扩展代码优先迁移的好方法

.net - Linq - 它是如何工作的?

c# - 为什么要编写自定义 LINQ 提供程序?

c# - 为什么相同的 Linq-to-SQL 查询会在不同项目的数据库服务器上消耗更多的 CPU 时间?

c# - 删除字典中的所有条目 c# WPF

c# - 无法确定 etaxiDataModel 关系的主体端。多个添加的实体可能具有相同的主键

c# - 反序列化 XmlDocument 的最短方法

c# - Linq to Sql 强制排序依据

c# - Linq to SQL 转换为 SQL 语法