gpt4 book ai didi

c# - 小巧玲珑.NET : The varchar(4000) default

转载 作者:太空狗 更新时间:2023-10-29 22:30:41 26 4
gpt4 key购买 nike

我正在使用 Dapper.NET,当我执行下一段代码时:

using (SqlConnection con = new SqlConnection(connectionString))
{
con.Open();
con.Execute(@" insert Clients(name) values(@Name)", new {Name = "John"});
con.Close();
}

它执行的查询是下一个:

(@Name nvarchar(4000)) insert Clients(name) values(@Name)

我的问题是:为什么 Dapper 将字符串转换为 nvarchar(4000)?我的意思是......在数据库中,name 字段是一个 < em>nvarchar(50)...

有人遇到过这个错误吗?你如何解决它?你有没有发现另一个这样的错误?

最佳答案

这不是错误。 Dapper 必须为字符串参数选择 SQL 数据类型,而无需查看数据库结构(更不用说解析查询并确定要将参数插入特定列)。

想象一下,如果您这样做:

insert Clients(name) values(@Name + 'abc')

Dapper 是否必须弄清楚@Name 最多可以包含 47 个字符?

如果愿意,您可以更具体地说明参数的大小:

con.Execute(@" insert Clients(name) values(@Name)", 
new { Name = new DbString { Value = "John", Length = 50 }});

关于c# - 小巧玲珑.NET : The varchar(4000) default,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30089420/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com