0

Simple LINQ update is not working. I make chages, but GetChangeSet returns 0 updates.

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;
    }
}
4

2 回答 2

3

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

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

于 2012-12-05T18:48:47.570 回答
0

两项:

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

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

    dc.CompanyEmployees.Single(c => c.Id == Employee.Id)

于 2011-04-29T15:11:54.917 回答