C# 如何使用户简洁地映射c中的简单存储过程?
我的存储过程只返回一个字符串。这个存储过程返回en-US 我的模特班在哪里 但是正在变为空C# 如何使用户简洁地映射c中的简单存储过程?,c#,.net,stored-procedures,dapper,C#,.net,Stored Procedures,Dapper,我的存储过程只返回一个字符串。这个存储过程返回en-US 我的模特班在哪里 但是正在变为空 你知道我在这里遗漏了什么吗?或者是否有其他方法调用此函数?您可能应该将属性结果命名为SP值返回的字段,但这会与保留关键字产生冲突 因此,更改SP以重命名作为模型属性返回的字段 CREATE PROCEDURE [dbo].[P_GetStringConfig]( @iCode CHAR(20)) AS BEGIN SET NOCOUNT ON SELECT Value A
你知道我在这里遗漏了什么吗?或者是否有其他方法调用此函数?您可能应该将属性结果命名为SP值返回的字段,但这会与保留关键字产生冲突 因此,更改SP以重命名作为模型属性返回的字段
CREATE PROCEDURE [dbo].[P_GetStringConfig](
@iCode CHAR(20))
AS
BEGIN
SET NOCOUNT ON
SELECT Value AS result
FROM T_SReq_Config WITH (NOLOCK)
WHERE Code = @iCode
IF @@ERROR <> 0
RETURN @@ERROR
RETURN 0
END
此外,我建议将代码更改为使用FirstOrDefault,以防您的SP找不到任何东西,您的代码将引发异常
var result = connection.Query<ModelClass>("P_GetStringConfig",
new {@iCode = "MCode"},
commandType:CommandType.StoredProcedure)
.FirstOrDefault();
是的,在简洁的查询方法中应该是P_GetStringConfig,或者这只是这个问题中的一个输入错误,而不是在您的实际代码中?@Dirk:对不起,这是一个输入错误。更新了问题。您想要select查询的结果还是return语句的结果?@Dirk:对该SP中的返回值感兴趣,它只返回字符串值谢谢。我现在就去试试。顺便说一句,查询总是返回一个列表?现在它会返回一个T吗?因为,SP只返回一个简单的字符串值?@nowhewhomustnotbenamed如果您只需要一个字符串值,那么Query….SingleOrDefault就可以很好地工作,而且不管列名是什么。这里有一个警告:您无法区分无行和空值行之间的区别
class ModelClass
{
string result {get;set;}
}
CREATE PROCEDURE [dbo].[P_GetStringConfig](
@iCode CHAR(20))
AS
BEGIN
SET NOCOUNT ON
SELECT Value AS result
FROM T_SReq_Config WITH (NOLOCK)
WHERE Code = @iCode
IF @@ERROR <> 0
RETURN @@ERROR
RETURN 0
END
var result = connection.Query<ModelClass>("P_GetStringConfig",
new {@iCode = "MCode"},
commandType:CommandType.StoredProcedure)
.FirstOrDefault();