Я хотел бы сообщить пользователю точной причины, почему запись не может быть удалена, у меня есть этот код для выполнения удалений:Как сделать Linq к Sql Удалить Exception сообщения более дружественный к пользователю
try{
var table = Context.GetTable<TRecordType>();
lock (table) {
table.DeleteOnSubmit(recordToDelete);
Context.SubmitChanges();
}
catch (Exception ex) {
//Put back record
throw new Exception("Could not perform dataservice delete operation", ex);
}
Как вам может показаться довольно простым, но обычно запись не может быть удалена из-за ограничения внешнего ключа, поэтому я получаю это SQLException с сообщением типа: «Оператор DELETE противоречил ограничению REFERENCE« FK_Something »... Конфликт произошел в базе данных «X», таблица «dbo.Department», column 'DepartmentId. Теперь то, что я действительно хотел бы сделать, это сообщить пользователю, что он не может удалить запись, потому что ссылается на эту таблицу, упомянутую в исключении. имеющих se текст, чтобы сделать это, это единственный способ? Также было бы очень приятно, если бы я мог получить ссылку на запись, нарушающую ограничение, поэтому я могу сказать пользователю: «Вы не можете удалить документ A, на который ссылаются документы B, C и D».