SQL Server FOREIGN KEY ON DELTE引发自定义消息

时间:2018-07-17 11:01:32

标签: sql sql-server-2012 entity-framework-6

当尝试删除违反外键的实体时,是否可以在SQL Server中引发自定义消息?我使用EntityFramework 6,并且希望由sql server引发一个自定义SqlException,以更好地指定错误。今天,EntityFramework引发了由sql server引起的异常,我不想解析一般的sql异常消息来指定此类问题。 例外:

    System.Exception: An error occurred while updating the entries. See the inner exception for details. ---> System.Data.SqlClient.SqlException: The MERGE statement conflicted with the REFERENCE constraint "FK_My_ForeignKey"....

我考虑这样的事情:

...
CONSTRAINT [FK_My_ForeignKey] FOREIGN KEY([Code]) REFERENCES [dbo].[MyTable] ([Code]) ON DELETE No Action AND RAISEERROR('MyCustomFKViolationError')
...

还是有更好的方法通过“ EntityFramework”来处理此问题?

1 个答案:

答案 0 :(得分:2)

在SQL Server中更改此行为会有些奇怪。您可以简单地在.Net / Entity Framework中解决此问题。只需看一下这篇文章即可克服它: https://stackoverflow.com/a/2403361/1666800