实体框架SQL Server错误消息语言

时间:2019-05-29 15:36:23

标签: c# sql-server entity-framework

我正在开发一个使用实体框架进行数据访问的应用程序。出于某些目的,有必要分析SqlException消息以获取更多信息。我已经发现该异常消息直接来自SQL Server。因此,要使解析过程正常工作,我需要确保在每种环境中将语言设置为相同。

我用来设置语言

SET LANGUAGE English;

出于测试目的,我做了以下事情:

SET LANGUAGE English;
SELECT * FROM ABC;

ABC不存在,因此显然会失败,并且我会收到一条错误消息。在Management Studio中,我的ErrorMessage显示如下:

enter image description here

这是应该的英文。

现在,当我在C#中尝试相同操作时,我会得到:

enter image description here

是德语

我想念什么?有任何想法吗?非常感谢...

1 个答案:

答案 0 :(得分:2)

与其在两个ExecuteSqlCommand调用中执行此操作,不如在一个中执行操作。

string command = "SET LANGUAGE English; SELECT * FROM ABC;";
ctx.Database.ExecuteSqlCommand(command);

ExecuteSqlCommand将开始一个新的自动提交会话。由于选择处于另一个会话中,因此您的第一个SET LANGUAGE几乎没有任何作用。