Linq to sql LINQ到SQL更新未更新

Linq to sql LINQ到SQL更新未更新,linq-to-sql,changeset,Linq To Sql,Changeset,简单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 (

简单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;
    }
}
公共bool更新(公司员工)
{
如果(!isValid(Employee))返回false;
var dc=新的EricCustomerSDataContext();
var e=dc.CompanyEmployees.Single(c=>c.Id==Employee.Id);
如果(e==null)
{
_ErrorMessage=“未找到”;
返回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=“变更集为空”//两项:

  • 您确定新值与旧值不同吗

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

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

  • 两项:

  • 您确定新值与旧值不同吗

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

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


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


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

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


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

    两项:1)您确定新值与旧值不同吗?2)“dc.CompanyEmployees.Single(c=>c.Id==Employee.Id)”将永远不会返回null,那么为什么要检查它呢?如果有多于或少于一条记录,它将抛出。我想您需要SingleOrDefault()?两项:1)您确定新值与旧值不同吗?2)“dc.CompanyEmployees.single(c=>c.Id==Employee.Id)”将永远不会返回null,那么为什么要检查它呢?如果有多于或少于一条记录,它将抛出。我想您需要SingleOrDefault()?Robinson-是的,这些值是不同的。我以前在测试中使用了SingleOrDefault并将其更改为Single,但没有任何效果。我认为从代码中看问题并不明显。我怀疑这可能与安全性有关,但尚未能够证明或反驳。Robinson-是的,这些值是不同的。我以前我在测试中使用了SingleOrDefault并将其更改为Single,但没有效果。我认为代码中没有明显的问题。我怀疑它可能与安全性有关,但尚未能够证明或反驳这一点。