当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以可用于临时查询的复制和粘贴方式记录参数声明?