Web API 2不能从基于存储过程的模型中构建控制器

时间:2016-04-24 02:27:46

标签: asp.net-web-api

我可以基于我的数据库中的表创建模型,然后使用Entity Framework(6)成功地操作Web API 2控制器。但是,如果已根据存储过程创建模型,则无法创建Web API 2控制器。我收到错误消息:

运行所选代码生成器时出错。无法检索....的元数据

我尝试了几个存储过程,每个过程都有相同的结果。我还尝试使用操作创建Web API 2控制器的ODATA版本并获得相同的结果。

存储过程返回一个记录集。

如何解决或解决此问题?

1 个答案:

答案 0 :(得分:0)

生成的dbContext应该生成存储的proc包装器,如下所示:

public virtual ObjectResult<uspStoredProcName_Result> uspStoredProcName(string abc)
{
     ...
    return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<uspStoredProcName_Result_Result>("uspStoredProcName_Result", abcParameter);
}

然后在你的代码中,你会这样称呼它:

var abcResults = dbContext.uspStoredProcName(abc).ToList();

确保在生成模型时选择了存储过程(DbContext)