- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在使用 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/
下面使用Dapper抛出Incorrect syntax near ','。 const string sql = "select * from ZipToZipDistance z wher
我应该如何将 IDbConnection 和 IDbTransaction 与 Dapper 一起使用? 目前我只使用 IDbConnection 。如下: using (SqlConnection
这似乎是一种奇怪的行为,但以下代码会引发错误: public async Task RebuildIndex(string tableName, string indexName) { awa
在 MVC 3 项目中,我使用 EF4、IoC 和 Agatha-RRSL 作为我的服务层。 幸运的是,这周我找到了 Dapper,我将从 EF4 迁移到 Dapper! 通常我会在我的 Agatha
我今天设法启动并运行了一些小型沙箱/POC 项目,但似乎在一个问题上让我头疼...... 问题: Is there a way to get dapper to map to SQL column n
我的读者从存储过程中读取内容它的第一个选择语句之一是 select id , name from FSubsystem 从 10 个中选择 staments 然后我声明了如下字典Dictionary
我正在使用 dapper.net 并且我已经为我的 Delete 和 Update 语句包装了 connection.Execute。 public virtual void Update(TEnti
我的数据库是甲骨文。我使用 Dapper 1.13,它抛出一个异常说 Error parsing column 3 (LATITUDE=39.2330 - Decimal)。 LATITUDE 是我实
我正在使用 Dapper.NET,当我执行下一段代码时: using (SqlConnection con = new SqlConnection(connectionString))
我正在尝试使用结构作为 Dapper 中的参数查询。它对我不起作用。但好像it should work . 一个失败的例子: struct Simple { public int ID; } [Tes
我在 C# 中使用 Dapper,后端是 MS Access。我的 DAL 方法在数据库中插入记录。我想返回插入行的唯一标识符(或更新的具有唯一标识符的 POCO)。我期待我的功能如下(我知道这不起作
我看到了使用 Dapper 执行带有动态参数的存储过程并返回过程结果的示例。通常,示例使用 .Execute,但其中一些使用 .Query。我在使用 .Execute 时遇到困难。在上述情况下我应该使
实际上我有一个查询,它返回的结果包含 varchar 类型的列(对于 ex.Address),但是该表的域模型包含对象类型的属性(对于 ex.Address 地址)。因为它会出现错误,它说无法将字符串
我使用 Dapper 的 DynamicParamters 对象和模板参数来生成我的实体的参数。在调用我的存储过程后,出现以下错误“过程或函数 sp_MemberSave 指定的参数太多。”。我的一些
我有一个包含地址对象的公司。 SQL 返回是平坦的,我正在尝试让 Query<> 加载所有对象。 cnn.Query("Sproc", (org,mail,ph
我需要将项目集合传递给存储过程。存储过程将它们插入到多个表中。我使用声明的自定义用户类型的表值参数。 TVP 类型: CREATE TYPE [dbo].[Type1] AS TABLE (
我是一名优秀的程序员,十分优秀!