linq-to-sql - LINQ to SQL 中的自定义异常

标签 linq-to-sql

我想在我的 Insert 失败时抛出自定义异常,这违反了 PK/FK 关系。 现在,LINQ TO SQL 抛出 SQLException,我想抛出一个更具体的异常,如 CategoryException。

最佳答案

当您捕捉到 SQLException 时,您可以检查它的 Number 属性或导航到它的 Errors 属性并检查它是否包含任何 编号为 547 的 SqlError - 这应该是约束冲突。如果您需要有关违反了哪些约束以及在哪个表上必须真正解析消息的详细信息,如@tyrongower 所述。消息的模式是:

The %ls statement conflicted with the %ls constraint "%.*ls". The conflict occurred in database "%.*ls", table "%.*ls"%ls%.*ls%ls.

编辑:

根据您正在开发的应用程序类型,您应该了解本地化。 SQL Server 可以本地化其错误消息,因此如果您使用不同的区域设置将应用程序部署到服务器,您的异常消息解析将不起作用。

关于linq-to-sql - LINQ to SQL 中的自定义异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6450954/

相关文章:

asp.net - 一个存储库应该调用另一个存储库吗?或者存储库应该调用服务层吗?

linq-to-sql - 我可以将 LINQ2SQL 与 ODBC 一起使用吗?

asp.net-mvc - 使用 LINQ to SQL SubmitChanges() 时,什么会导致 SqlDateTime 溢出?

c# - Linq to SQl 查询扩展

c# - 使用 Linq 匹配本地列表中任何对象的 2 属性

c# - LINQ to SQL - 在测试和开发数据库之间切换的最佳方式

c# - Linq to Sql 按类分组

c# - 优化日历应用程序的查询和/或数据模型

c# - 这是使用 LINQ to SQL 时的虚假警告吗?

c# - ASP.NET MVC 发布的实体未映射到 LINQ 模型