Обновление сущности с использованием Entity Framework 4.1 - PullRequest
0 голосов
/ 02 января 2012

Я пытаюсь обновить сущность, используя Entity Framework 4.1 Code вначале. Я использую следующий код:

public void UpdatePersonEmail(long registryID, string Email) {
            var Person = context.Persons.FirstOrDefault(p => p.RegistryID == registryID);
          //  Person = person;
            Person.Email = Email;
            try
            {
                context.Persons.Attach(Person);
                context.Entry(Person).State = System.Data.EntityState.Modified;
                context.SaveChanges();
            }
            catch (DbEntityValidationException dbEx)
            {
                foreach (var validationErrors in dbEx.EntityValidationErrors)
                {
                    foreach (var validationError in validationErrors.ValidationErrors)
                    {
                        Trace.TraceInformation("Property: {0} Error: {1}", validationError.PropertyName, validationError.ErrorMessage);
                    }
                }
            }
        }

Код не выдает никакой ошибки, но объект не обновляется. Я просто хочу обновить адрес электронной почты.

Пожалуйста, предложите мне решение.

1 Ответ

0 голосов
/ 04 января 2012

Каждый раз, когда вы делаете FirstOrDefault, вы должны проверять, чтобы сущность не была нулевой. Попробуйте это:

public void UpdatePersonEmail(long registryID, string Email) 
{
    var person = context.Persons.FirstOrDefault(p => p.RegistryID == registryID);
    try
    {
        person.Email = Email;
        context.SaveChanges();
    }
    catch (DbEntityValidationException dbEx)
    {
        foreach (var validationErrors in dbEx.EntityValidationErrors)
        {
            foreach (var validationError in validationErrors.ValidationErrors)
            {
                Trace.TraceInformation("Property: {0} Error: {1}", 
                    validationError.PropertyName, validationError.ErrorMessage);
            }
        }
    }
    catch (NullReferenceException nrEx)
    {
        Trace.TraceInformation("person was null.");
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...