ASP.NET MVC3 Entity Framework Entity не обновляется правильно - PullRequest
0 голосов
/ 16 августа 2011

Я сделал тестовую программу для чего-то совершенно не связанного с Entity Framework, и то, что я думал, будет простой интеграцией, оказалось проблематичным. У меня есть таблица БД с именем « TestEntry », которая содержит четыре поля данных [Id (uniqueidentifier), EId (uniqueidentifier), Name, Data], они не связаны с любыми другими таблицами базы данных и являются автономными.

Проблема представляет собой простое обновление, которое определяется следующим образом:

    EDMEntities _db = new EDMEntities();

    public List<TestEntry> GetEntities()
    {
        return _db.TestEntries.ToList();
    }
    public void EditEntry(TestEntry newEntry)
    {
        TestEntry entry = _db.TestEntries.FirstOrDefault(e => e.Id == newEntry.Id);
        if (string.IsNullOrEmpty(newEntry.Name)) { entry.Name = newEntry.Name; }
        if (string.IsNullOrEmpty(newEntry.Data)) { entry.Data = newEntry.Data; }

        if (entry.EntityState == System.Data.EntityState.Modified)
        {
            _db.SaveChanges();
        }
    }

Пройдя через это, я заметил:

  • Ни запись. Имя , ни запись. Данные обновляются со значениями из newEntry
  • EntityState остается неизменным, поэтому не входит в условное

Есть идеи о том, что это может быть?

Ответы [ 2 ]

2 голосов
/ 16 августа 2011

Не должно ли быть:

if (!string.IsNullOrEmpty(newEntry.Name)) { entry.Name = newEntry.Name; }
if (!string.IsNullOrEmpty(newEntry.Data)) { entry.Data = newEntry.Data; }
2 голосов
/ 16 августа 2011

Вы должны отрицать условия.

if (!string.IsNullOrEmpty(newEntry.Name))

Обратите внимание на восклицательный знак.

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