[英]How to retrieve a value returned from a stored procedure using entity Framework?
我一直在寻找一种合适的方式来处理这个问题。 我有一个存储过程,它通过使用 ID 参数从表中查找记录,该参数仅输出一列。
在房子的 c# 一侧,我通过数据库上下文调用存储过程。
当前,收到的错误是:“null” 预期结果是该行的内容。
CREATE PROCEDURE [dbo].[getLog]
@logId INT
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
SELECT [Logs]
FROM [dbo].[output]
Where [ID]=@logId
END
GO
C# 代码
OutputDTO<SearchInputDTO> output = new OutputDTO<SearchInputDTO>();
try
{
var getID = srequest.ID;
var retLog = _output.getLog(getID);
return Ok(retLog);
}
catch (Exception e)
{
ErrorHandler.HandleError("Failed to retrieve rows: ", e);
LogManager.Log("error", Level.ERROR, "Login: " + e);
output.Success = false;
output.ErrorMessage = "Failed to retrieve rows.";
output.ErrorDetails = new Dictionary<string, string>
{
{ "Error", output.ErrorMessage }
};
var json = new JavaScriptSerializer().Serialize(output);
return Ok(json);
}
如问题中所述:您正在使用实体框架。 为什么要调用存储过程呢?
你可以通过 linq
dbContext.Output.Where(x=>x.Id == logId).FirstOrDefault()
这将返回输出表的第一个返回对象。
希望这可以帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.