C# 如何使用户简洁地映射c中的简单存储过程?

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

我的存储过程只返回一个字符串。这个存储过程返回en-US

我的模特班在哪里

但是正在变为空


你知道我在这里遗漏了什么吗?或者是否有其他方法调用此函数?

您可能应该将属性结果命名为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();