반응형
EF Core(Entityframwork core) 쿼리를 실행하는 경우 Parameter의 값이 ?로 로그에 출력 합니다.
이유는 실제 쿼리가 parameter binding되어 실행되기 때문에 쿼리문 자체는 ?로 실행됩니다.
두번째 줄의 Parameters에 ? 와 컬럼 타입 및 CommandTimout 값만 표시 된다.
dbug: 2023-04-11 16:19:23.468 RelationalEventId.CommandExecuting[20100] (Microsoft.EntityFrameworkCore.Database.Command)
Executing DbCommand [Parameters=[@__GetName_0='?' (Size = 4000)], CommandType='Text', CommandTimeout='30']
SELECT [s].[StudentId], [s].[Name]
FROM [Students] AS [s]
WHERE [s].[Name] = @__GetName_0
해당 부분을 확인하기 위해서 EnableSensitiveDataLogging() 호출하면 Parameter의 값을 확인 할 수 있습니다.
optionsBuilder.UseSqlServer(builder.ConnectionString);
optionsBuilder.EnableSensitiveDataLogging();
optionsBuilder.LogTo(Console.WriteLine,
new[] {
Microsoft.EntityFrameworkCore.Diagnostics.RelationalEventId.CommandExecuting,
});
"파라미터값"이라는 것이 변수에 바인딩되는 것을 확인 할 수 있습니다.
dbug: 2023-04-11 16:30:35.534 RelationalEventId.CommandExecuting[20100] (Microsoft.EntityFrameworkCore.Database.Command)
Executing DbCommand [Parameters=[@__GetName_0='파라미터값' (Size = 4000)], CommandType='Text', CommandTimeout='30']
SELECT [s].[StudentId], [s].[Name]
FROM [Students] AS [s]
WHERE [s].[Name] = @__GetName_0
반응형
'Dev > dotnet core' 카테고리의 다른 글
옵션 패턴(Option pattern) (0) | 2023.07.11 |
---|---|
dotnet middleware 순서 (0) | 2023.07.05 |
dotnet user-secrets (0) | 2023.05.24 |
vault v2 api (0) | 2023.04.20 |