使用DECLARE格式的参数的EF Core SQL日志记录

时间:2019-06-18 10:48:27

标签: logging parameters entity-framework-core

当EF Core使用参数记录SQL命令时,这些参数将以无法用于复制和粘贴到SQL Management Studio窗口进行即席查询的形式出现。

这是从EF Core 2.2开始。

当我们从客户日志中检查SQL时,我们希望在客户数据库中重新运行它们以查看结果集。例如,EF Core记录如下内容:

info: Microsoft.EntityFrameworkCore.Database.Command[20101]
      Executed DbCommand (60ms) [Parameters=[@__p_4='50', @__value_0='KREUZSTR' (Size = 255) (DbType = AnsiString), @__value_1='4711' (Size = 20) (DbType = AnsiString), @__value_2='City' (Size = 255) (DbType = AnsiString), @__value_3='VonDummy,S.' (Size = 255)], CommandType='Text', CommandTimeout='30']
      -- BlCustomerDuplicateRecognition.cs:462 in GenerateSearchQuery

      SELECT TOP(@__p_4) [cust].[primkey], [cust].[c_custno] ...

这不是很有用。我必须手动将参数转换为

DECLARE @__p_4 INT = 50,
        @__value_0 VARCHAR(255) = 'KREUZSTR',
        @__value_1 VARCHAR(20) = '4711',
        @__value_2 VARCHAR(255) = 'City',
        @__value_3 VARCHAR(255) = 'VonDummy,S.'
SELECT TOP(@__p_4) [cust].[primkey], [cust].[c_custno] ...

这很烦人。 是否有一种方法可以告诉EF Core以可用于临时查询的复制和粘贴方式记录参数声明?

0 个答案:

没有答案