Dapper 参数长度

4

不确定这是否与使用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

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

1个回答

7

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

new {childName = new DbString { Value = "SomeValue", Length = 256, 
                               IsAnsi = false, IsFixedLength = false }};

IsFixedLength 参数是用来做什么的? - delroh
1
好的,我已经弄清楚它的作用了。IsFixedLength用于指示该字段是变长的,例如varchar,还是定长的,例如char - delroh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接