我有一个搜索我的人员表的存储过程,我想在我的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中的选项更新模型从来没有正常工作,因此我删除了end重新创建模型。
PagingPersonItem
是一个包含查询结果属性的类。
但是我收到了这个错误:
西班牙语:
No se encuentra la columna“dbo”olafuncióndefinidapor el usuario o agregado“dbo.sp_Search_Natural_Person”; o bien,el nombre es ambiguo
和英语会是这样的:
找不到名为“DBO”的列或用户定义的函数添加“dbo.sp_Search_Natural_person”;或者名字含糊不清
答案 0 :(得分: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();