Dapper 参数长度

Cha*_*ler 4 t-sql sql-server dapper

不确定这是否与 Dapper 的使用有关。在使用 Dapper 的 SQL Server 上,我看到生成了多个缓存计划,唯一的区别是参数的长度:

(@parentId uniqueidentifier,@childName nvarchar(60)) 
 SELECT [ID] FROM [Items] WHERE [ParentID] = @parentId AND [Name] = @childName

(@parentId uniqueidentifier,@childName nvarchar(91))
SELECT [ID] FROM [Items] WHERE [ParentID] = @parentId AND [Name] = @childName

(@parentId uniqueidentifier,@childName nvarchar(15))
 SELECT [ID] FROM [Items] WHERE [ParentID] = @parentId AND [Name] = @childName
Run Code Online (Sandbox Code Playgroud)

是否有任何控制参数长度的 Dapper 配置设置?是否可以设置为nvarchar(256)与表列定义匹配的固定长度?

Luk*_*zda 7

您可以在传递参数时定义长度:

new {childName = new DbString { Value = "SomeValue", Length = 256, 
                               IsAnsi = false, IsFixedLength = false }};
Run Code Online (Sandbox Code Playgroud)