1

我有一个搜索我的 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();

我需要这样称呼它,因为我的数据库架构发生了很大变化,并且来自 DB 的选项更新模型从来没有正常工作,所以我删除了重新创建模型。

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”定义的函数;或名称不明确

4

1 回答 1

1

您的 SP_Search_Natural_Person 真的是 StoredProcedure 还是用户定义的函数?

从您的 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();
于 2013-09-24T13:22:21.077 回答