“ FromSql”操作的结果中没有所需的列。 (Oracle存储过程)

时间:2019-01-16 12:43:59

标签: asp.net-core entity-framework-core

想用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();

2 个答案:

答案 0 :(得分:0)

您需要的列为:IDErorrcodeErrorMsg

检查存储过程是否恰好返回了这些列。考虑到区分大小写,因此'ID'不等于'Id'以及'Errorcode'不等于'ErrorCode'

答案 1 :(得分:0)

幸运的是,我通过使存储过程返回一个refcursor而不是3个值来解决了自己的问题,并且一切顺利。但我想知道如果它返回值而不是返回值该怎么办。