Обновление LINQ to SQL не обновляется - PullRequest
0 голосов
/ 28 апреля 2011

Простое обновление 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;
    }
}

Ответы [ 2 ]

3 голосов
/ 05 декабря 2012

Я просто столкнулся с той же проблемой. У меня была одна таблица, которая отказывалась показывать изменения или обновления.

Я исправил это, удалив все таблицы в моем dbml-файле, а затем снова добавил их.

0 голосов
/ 29 апреля 2011

Два предмета:

  1. Вы уверены, что новые значения отличаются от старых значений?

  2. Следующее никогда не вернет ноль, так зачем проверять это? Он выдаст, если будет больше или меньше одной записи. Я думаю, что вы хотите SingleOrDefault ()?

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...