想用oracle调用存储过程,所以搜索后发现 为此,我必须创建一个模型并建立上下文和这些东西。但是这样做之后,我就无所适从了
“ FromSql”操作的结果中没有所需的列。
我正在使用asp核心2.2和EF核心2.2.1,现在我正在获取这些文件,但我不知道该如何解决或出了什么问题。
我尝试了很多事情,但没有任何改变
这是我的文件
型号
namespace test2._2.Models
{
public class CodeProc
{
public int ID { get; set; }
public int Erorrcode { get; set; }
public string ErrorMsg { get; set; }
}
}
上下文
namespace test2._2.Models
{
public partial class ModelCodingContext : DbContext
{
public ModelCodingContext(DbContextOptions<ModelCodingContext> optionss)
: base(optionss)
{
}
public virtual DbSet<CodeProc> CodeProcs { get; set; }
}
}
调用和运行并打印结果的实际过程
var result = await _dbCodingContext.CodeProcs.FromSql("begin FIX_CODING.GET_CLIENT_CODE12(245,255,:num1,:num2,:msg);end;", oracleParameter, oracleParameter2, oracleParameter3).ToArrayAsync();
ViewData["test"] += result.ToString();
答案 0 :(得分:0)
您需要的列为:ID
,Erorrcode
,ErrorMsg
检查存储过程是否恰好返回了这些列。考虑到区分大小写,因此'ID'
不等于'Id'
以及'Errorcode'
不等于'ErrorCode'
。
答案 1 :(得分:0)
幸运的是,我通过使存储过程返回一个refcursor而不是3个值来解决了自己的问题,并且一切顺利。但我想知道如果它返回值而不是返回值该怎么办。