C# 实体框架中的密钥描述

C# 实体框架中的密钥描述,c#,sql-server,entity-framework,C#,Sql Server,Entity Framework,我正在使用SQL Server和实体框架6.2.0。我在SQL server的下图中找到了唯一的密钥,请注意突出显示的“Description”字段。当违反此键时,实体框架将抛出UpdateException。是否仍然可以从该异常获取此“描述”字段 您可以根据需要或在启动时使用以下查询从目录中检索它们: select k.name, cast(p.value as nvarchar(500)) value from sys.extended_properties p join sys.key_c

我正在使用SQL Server和实体框架6.2.0。我在SQL server的下图中找到了唯一的密钥,请注意突出显示的“Description”字段。当违反此键时,实体框架将抛出UpdateException。是否仍然可以从该异常获取此“描述”字段


您可以根据需要或在启动时使用以下查询从目录中检索它们:

select k.name, cast(p.value as nvarchar(500)) value
from sys.extended_properties p
join sys.key_constraints k
  on p.major_id = k.object_id
 and p.class_desc = 'OBJECT_OR_COLUMN'
 and minor_id = 0
where p.name = 'MS_Description'

但关键约束与错误消息的匹配取决于您。

这就完成了任务。我从异常消息中取出约束名称,其中包含:Regex Regex=new Regex^违反?*?约束“?[^']*'\\.[^']*'?[^']*'[^]*\?[^]*\;Match=regex.Matchmessage;字符串名称=null;如果匹配!=null&&match.Groups[ConstraintName]!=null{name=match.Groups[ConstraintName].Value;}