Проблема с Silverlight 4 Entity - PullRequest
       20

Проблема с Silverlight 4 Entity

0 голосов
/ 18 октября 2011

Я создал пример приложения в Silverlight со службами RIA.Я использую платформу сущностей для операции CRUD, но она не работает для операции INSERT со следующим исключением: "Подтвердить неудачу при подтверждении операции. Пожалуйста, проверьте Entity.ValidationErrors для каждой сущности в EntitiesInError для получения дополнительной информации."применить любую проверку, но не знаю, как происходит ошибка.Я проверил, что когда я создаю объект сущности БД и присваиваю ему значения, а затем сохраняю, вызывая object.SaveChages (), он работает нормально.Но его метод по умолчанию не работает.Любая помощь приветствуется.

Спасибо

Ответы [ 2 ]

3 голосов
/ 18 октября 2011

Обратный вызов SubmitOperation имеет свойство EntitiesInError, которое можно использовать для итерации по сущностям. Это способ получить «настоящую» ошибку.

Вот метод, который я должен показать пользователю, что пошло не так ...

public static bool WasSubmittedOK(SubmitOperation so, string errorMessageHeader, out string errorMessage)
{
    errorMessage = string.Empty;
    if (!so.HasError)
        return true;

    so.MarkErrorAsHandled();

    errorMessage = "An unknown error has occurred";
    if (so.EntitiesInError.Count() > 0)
    {
        StringBuilder builder = new StringBuilder();
        builder.AppendFormat("{0}\r\n", errorMessageHeader);
        foreach (Entity item in so.EntitiesInError)
        {
#if DEBUG
            builder.AppendFormat("\r\nFor {0}", item.GetType());
#endif
            foreach (ValidationResult error in item.ValidationErrors)
            {
                builder.AppendFormat("\r\n- {0}", error.ErrorMessage);
                Debug.WriteLine(string.Format("Error in {0}:'{1}'", string.Join(",", error.MemberNames.ToArray()), error.ErrorMessage));
            }
        }
        errorMessage = builder.ToString();
    }
    else if (so.Error != null) { errorMessage = so.Error.Message; }

    return false;
}
0 голосов
/ 18 октября 2011

Можете ли вы изучить ошибки валидации? На самом деле у меня есть статья об этом в декабре MSDN Magazine Data Points, но держу пари, что вы не хотите ждать, верно? :)

Даже если вы не применяли какие-либо специальные проверки, есть такие вещи, как ограничения внешнего ключа, которые EF все равно будет проверять. Если вы видите, в чем заключается ошибка, это в конечном итоге будет полезно для решения вашей проблемы. Отладка в исключение. Посмотрите, есть ли доступная исключительная ситуация DbEntityValidationException ... может быть, это innerexceptoin. DbEntityValidationException будет иметь один или несколько EntityValidationErrors. Каждый из те содержит список всех ошибок, найденных для одного экземпляра. Это означает, что нужно расширять элементы EntityValidationErrors по одному и смотреть на элементы ValidationError, содержащиеся в нем.

...