Как дать дружественные сообщения об ошибках для разного рода исключений во время SubmitChanges () - PullRequest
0 голосов
/ 12 октября 2010

У меня есть сетка, которая будет иметь Вставить / Удалить / Обновить.Есть два вида исключений, о которых я сейчас говорю: это Concurrency и Unique Constraint

. Сейчас я могу перехватить исключения, используя

  private void OnSubmitChangesCompleted(SubmitOperation so)
    {
        if (so.HasError)
        {

            //RadWindow.Alert("Modification is failed because of concurrency issue."+ "\nPlease close the window and reopen it", OnClosed);
            //so.MarkErrorAsHandled();
            MessageBox.Show(string.Format("Submit Failed: {0}", so.Error.Message));
            so.MarkErrorAsHandled();
        }

    }

Однако, Сообщение слишком недружелюбно.И не уточняйте, является ли это исключением параллелизма или исключением уникального ограничения.

Может кто-нибудь сказать мне, как я могу их уточнить? Я пытаюсь использовать GetType (), чтобы увидеть, какое у них исключение, но я обаполучите исключение DomainOperationException.

Примечание. В случае обновления должно быть возможно захватить исключение параллелизма или исключение ограничения уникальности.Я думаю, что для удаления может быть выдано только исключение параллелизма.Для Вставки может быть выдано только исключение Уникальное ограничение.

Любая помощь будет оценена.

Я обнаружил аналогичную ситуацию в моем случае на

http://forums.silverlight.net/forums/t/198896.aspx

но я действительно не знаю, как проверить что-то похожее на

BananaCannotBeDeleted () в этом примере, потому что мне нужно проверить уникальность или параллелизм, которые включают базу данных в моем случае.

1 Ответ

0 голосов
/ 22 октября 2010

Вам может потребоваться перехватить определенную сторону сервера исключений и выдать вам конкретное сообщение.

Например, перехватить ConcurrencyException и UniqueConstraintException, а затем выдать с вашим собственным исключением и сообщением.

...