ExecuteFunction 仅支持具有返回类型的存储过程和函数
Posted
技术标签:
【中文标题】ExecuteFunction 仅支持具有返回类型的存储过程和函数【英文标题】:ExecuteFunction only supports stored procedures and functions that have a return type 【发布时间】:2018-05-07 16:21:27 【问题描述】:我需要从实体框架调用 SP,使用 DB 优先方法。 下面是它的代码。但我面临错误。
“存储过程或函数‘XXXXXXX’没有返回类型。。”
var searchFieldParameter = searchField != null ?
new ObjectParameter("SearchField", searchField) :
new ObjectParameter("SearchField", typeof(string));
var searchTextParameter = searchText != null ?
new ObjectParameter("SearchText", searchText) :
new ObjectParameter("SearchText", typeof(string));
return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<ReasonCode>("XXXXXXX", searchFieldParameter, searchTextParameter);
【问题讨论】:
这能回答你的问题吗? Error calling Stored Procedures from EntityFramework 【参考方案1】:我的问题得到了答案。以下代码可用于从 EF 调用 SP
var searchFieldParameter = searchField != null ?
new SqlParameter("SearchField", searchField) :
new SqlParameter("SearchField", typeof(string));
var searchTextParameter = searchText != null ?
new SqlParameter("SearchText", searchText) :
new SqlParameter("SearchText", typeof(string));
return ((IObjectContextAdapter)this).ObjectContext.ExecuteStoreQuery<ReasonCode>("exec Reason_Codes_Search_SP @SearchField, @SearchText ", searchFieldParameter, searchTextParameter);
【讨论】:
以上是关于ExecuteFunction 仅支持具有返回类型的存储过程和函数的主要内容,如果未能解决你的问题,请参考以下文章
DbContext.Database.SqlQuery vs ObjectContext.ExecuteFunction
Office 外接程序 (Add-ins) 的 ExecuteFunction 命令变更
Office 外接程序 (Add-ins) 的 ExecuteFunction 命令变更
Office 外接程序 (Add-ins) 的 ExecuteFunction 命令变更