使用 SqlQuery 在 ef5 上调用存储过程时出现问题



我有一个搜索我的 person 表的存储过程,我想在我的 ef5 项目中使用它,我想使用如下所示的 SQL 语句调用它:

string sqlQuery = "SELECT [dbo].[sp_Search_Natural_Person] ({0}, {1}, {2})";
System.Object[] parameters = { buscar, buscarTipo, buscarPor};
var resultado = db_hms.Database.SqlQuery<PagingPersonItem>(sqlQuery, parameters).ToList();

我需要这样调用它,因为我的数据库模式变化很大,并且来自数据库的选项更新模型从未正常工作,所以我删除了结束重新创建模型。

PagingPersonItem是一个类,其中包含查询结果的属性。

但是我收到此错误:

西班牙语:

No se encuentra la columna "dbo" o la función definida por el usuario o agregado "dbo.sp_Search_Natural_Person"; o bien, el nombre es ambiguo

英语将是这样的:

找不到名为"DBO"的列或用户添加的"dbo.sp_Search_Natural_person"定义的函数;或者名称不明确

你的SP_Search_Natural_Person真的是一个 StoredProcess 还是一个用户定义的函数?

从 select 语句来看,它看起来像一个 Udf,但从名称上看,它看起来像一个存储过程。

对于存储过程,我将使用以下语句:

string sqlQuery = "EXEC [dbo].[sp_Search_Natural_Person] {0}, {1}, {2}";
System.Object[] parameters = { buscar, buscarTipo, buscarPor};
var resultado = db_hms.Database.SqlQuery<PagingPersonItem>(sqlQuery, parameters).ToList();

最新更新