Entity Framework SQL Server Язык сообщений об ошибках - PullRequest
2 голосов
/ 29 мая 2019

Я работаю над Приложением, использующим 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 Ответ

2 голосов
/ 29 мая 2019

вместо того, чтобы делать это за два ExecuteSqlCommand вызова, вы должны сделать это за один раз.

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

ExecuteSqlCommand начнет новый сеанс автоматической фиксации.Ваш первый SET LANGUAGE практически не имеет никакого эффекта, так как выбор находится в другом сеансе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...