Kin*_*mar 3 c# sql-server entity-framework dapper asp.net-core
使用 Dapper 从 .NET Entity Framework 调用存储过程时出现此错误。
不允许从数据类型 sql_variant 隐式转换为 varchar。
存储过程参数为@Name nvarchar(50) = NULL。
因此理想情况下,它应该接受空值。当我调用存储过程并@Name = null从 .NET 传递时,出现此错误。
这是存储过程:
CREATE PROCEDURE [dbo].[Member_Add]
@Id NVARCHAR(50) = NULL,
@Name NVARCHAR(50) = NULL
AS
BEGIN
INSERT INTO [dbo].Member (Id, Name)
VALUES (@Id, @Name)
END
Run Code Online (Sandbox Code Playgroud)
Dapper 在内部映射object到sql_variant. 当我通过时,null它正在将其视为object类型。正如我的存储过程所期望的那样varchar,sql_variant无法转换为它。
我开始传递string.Empty而不是null对象,并且工作正常。
@Name = Request.Name??string.Empty;
| 归档时间: |
|
| 查看次数: |
9104 次 |
| 最近记录: |