LINQ to SQL Update没有更新



简单的LINQ更新不工作。我做了更改,但是GetChangeSet返回0更新

public bool Update(CompanyEmployee Employee)
{
    if (!isValid(Employee)) return false;
    var dc = new ERICustomersDataContext();
    var e = dc.CompanyEmployees.Single(c => c.Id == Employee.Id);
    if (e == null)
    {
        _ErrorMessage = "Not found";
        return false;
    }
    e.LastName = Employee.LastName;
    e.FirstName = Employee.FirstName;
    e.EmployeeNumber = Employee.EmployeeNumber;
    e.BusinessUnitId = Employee.BusinessUnitId;
    var ChangeSet = dc.GetChangeSet();
    if (ChangeSet.Updates.Count == 0)
    {
        _ErrorMessage = "Changeset is empty"; // <<<< THIS IS WHAT HAPPENS...
        return false;
    }
    try
    {
        dc.SubmitChanges();
        return true;
    }
    catch (Exception ex)
    {
        _ErrorMessage = ex.Message;
        return false;
    }
}

我刚刚遇到了同样的问题。我有一个表拒绝显示更改或更新。

我通过删除我的dbml文件中的所有表,然后重新添加它们来修复它。

两项:

  1. 您确定新值与旧值不同吗?

  2. 下面的代码永远不会返回null,所以为什么要检查它呢?如果有多于或少于一条记录,它将抛出。我想你想要SingleOrDefault()?

    dc.CompanyEmployees。单(c => c. id == Employee.Id)

相关内容

最新更新