Aop Sql打印问题 返回
await _repository.UpdateSetColumnsTrueAsync(x => new TestGuid { Name = "123"}, x => x.Id == id);
这种根据主键更新单列的执行方法,监控Aop的时候,生成的Sql语句和参数有问题
Sql语句如下:
SELECT
`Name`,
`DeptId`,
`TenantId`,
`PlatformId`,
`Id`,
`CreateId`,
`CreateName`,
`CreateTime`,
`UpdateId`,
`UpdateName`,
`UpdateTime`,
`IsDeleted`
FROM
`TestGuid`
WHERE
NOT ( `IsDeleted` = 1 )
AND ( `TenantId` = @TenantId1000 )
AND ( `PlatformId` = @PlatformId1001 )
AND ( `Id` = @Id1 )
其中@TenantId1000和@PlatformId1001是对的
@Id1这个参数有两个,截图如下:

展开6和7的参数如下图:


这里面怎么会有一个@Id=' 00000000-0000-0000-0000-000000000000'的参数?
热忱回答(4)
-
fate sta VIP0
2026/5/21应该是多一个参数,不影响结果
0 回复 -
fate sta VIP0
2026/5/21后面这个函数优化一下。
0 回复 -
fry VIP0
2026/5/22@fate sta:这边要监控执行的Sql,参数要替换(@Id和@Id1这两个),替换的时候@Id也匹配到了@Ids了,导致Sql的语句打印出来是错的
0 回复 -
fry VIP0
2026/5/22@fate sta:结果是对的,但是他影响sql的打印替换,这个问题可以稍微优化一下
0 回复