Индекс ошибки Linq - PullRequest
       13

Индекс ошибки Linq

1 голос
/ 10 октября 2008

Если у меня есть следующий код Linq:

context.Table1s.InsertOnSubmit(t);
context.Table1s.InsertOnSubmit(t2);
context.Table1s.InsertOnSubmit(t3);

context.SubmitChanges();

И я получаю ошибку базы данных из-за 2-й вставки, Linq выдает исключение, что произошла ошибка. Но есть ли способ узнать, что проблема была во 2-й вставке, а не в 1-й или 3-й?

Чтобы уточнить, есть бизнес-причины, по которым я ожидал бы, что 2-й сбой (я использую хранимую процедуру для вставки, а также выполняю некоторую проверку и выдачу ошибки в случае сбоя). Я хочу быть в состоянии сказать пользователю, какой сбой и почему. Я знаю, что эту проверку лучше выполнить в коде C #, а не в базе данных, но в настоящее время это не вариант.

Ответы [ 2 ]

1 голос
/ 11 октября 2008

Вы можете явно указать режим конфликта, подобный этому:

context.SubmitChanges(ConflictMode.ContinueOnConflict);

, если вы хотите вставить то, что является действительным, а не сбой при первом конфликте, используйте

context.ChangeConflicts

коллекция, чтобы узнать, какие объекты конфликтовали во время вставки.

1 голос
/ 10 октября 2008

Закомментируйте первую и третью вставки, чтобы исключить их как подозреваемых.

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

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