微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

MiniProfiler是否在EF Core FromSql中显示表值参数的值?

如何解决MiniProfiler是否在EF Core FromSql中显示表值参数的值?

在使用MiniProfiler时,我注意到它没有显示使用Fromsql的EF Core 2.X调用的TVP参数的值。我的问题是,是否应该启用该功能?如果需要的话,该怎么做?

在Global.asax.cs中,Application_Start我具有配置

sqlFormatter = new StackExchange.Profiling.sqlFormatters.sqlServerFormatter()}
.AddEntityFramework()

TVP参数的构造如下:

new sqlParameter("Locations",sqlDbType.Structured) { TypeName = "IntListTableType",Value = dataTableOfValues };

被称为:

MyDbContext.TeamPerformanceInfo
                .Fromsql(@"EXEC [dbo].[TeamPerformanceInfo] @ScreenType = @ScreenType,@StartDate = @StartDate,@CutOffDate = @CutOffDate,@EndDate = @EndDate,@Locations = @Locations,@PersonJoinDate = @PersonJoinDate,@TeamMembers = @TeamMembers,@UserId = @UserId,@TeamId = @TeamId,@FilterTypes = @FilterTypes,@FilterStatuses = @FilterStatuses,@PageNr = @PageNr,@PageSize = @PageSize,@ProgramGroup = @ProgramGroup,@Regions = @Regions",parameters.ToArray()).ToList()

输出如下信息:

DECLARE @StartDate datetime = '2020-08-11T04:00:00',@EndDate datetime = '2020-08-12T03:59:00',@UserId bigint = 5,@Locations sql_variant = 'BigintListTableType',@TeamMembers sql_variant = 'BigintListTableType',@PersonJoinDate sql_variant = 'DateTiMetableType',@PageNr int = 1,@PageSize int = 500,@ScreenType int = 1,@ProgramGroup sql_variant = 'IntListTableType',@Regions sql_variant = 'IntListTableType',@TeamId bigint = -1,@CutOffDate datetime = null,@FilterTypes sql_variant = 'BigintListTableType',@FilterStatuses sql_variant = 'BigintListTableType';

EXEC [dbo].[TeamPerformanceInfo] @ScreenType = @ScreenType,@Regions = @Regions

如您所见,非TVP变量输出值,但TVP变量仅输出TVP类型。这正常吗?有没有办法在MiniProfiler中显示TVP值?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。