NLog получение текущего пользователя приводит к появлению ошибки - PullRequest
0 голосов
/ 02 января 2019

Это моя цель

<target xsi:type="Database" name="database"
   connectionString="${var:connectionString}"
   commandText="INSERT INTO [AppOne].[EventLogs](Id, Message, Level, Logger, Action,Identity)VALUES(NewID(), @Message, @Level, @Logger, @Action,@Identity)">
<parameter name="@Message" layout="${message}" />
<parameter name="@Level" layout="${level}" />
<parameter name="@Logger" layout="${logger}" />
<parameter name="@Action" layout="${aspnet-mvc-action}"/>
<parameter name="@Identity" layout="${aspnet-user-identity}"/>

Я также разместил эту строку в моем Startup.cs

services.AddSingleton<Microsoft.AspNetCore.Http.IHttpContextAccessor, HttpContextAccessor>();

Однако, когда я запускаю свое приложение и пытаюсь зарегистрировать элемент, я получаю эту ошибку во внутреннем журнале:

Ошибка DatabaseTarget (имя = база данных): ошибка при записи в базу данных. Исключение: System.Data.SqlClient.SqlException (0x80131904): неверно Синтаксис рядом с ключевым словом «Идентичность».

Я использую Asp.net Core 2.1. Я пробовал искать в документации, и похоже, что это поддерживает только asp.net?

1 Ответ

0 голосов
/ 02 января 2019

Вы использовали ключевое слово в качестве имени столбца, я бы не стал этого делать, если бы вы могли остановить подобные проблемы.Однако вы можете устранить ошибку, заключив ключевое слово в квадратные скобки, поэтому ваш SQL должен быть

INSERT INTO [AppOne].[EventLogs](Id, [Message], [Level], Logger, [Action],[Identity])VALUES(NewID(), @Message, @Level, @Logger, @Action,@Identity)

...