【发布时间】:2014-04-01 12:56:59
【问题描述】:
我有 asp.net mvc 4 项目,在该项目中尝试调用 T-SQL,我需要选择一些不包含所有列的行
CREATE PROCEDURE [dbo].[SP_name]
@iSkip int, @iTake int
AS
BEGIN
SELECT [Column1], [Column2], [Column3] FROM [dbo].[Table] WITH(NOLOCK)
ORDER BY
[Column1] DESC
OFFSET @iSkip ROWS
FETCH NEXT @iTake ROWS ONLY
END
但是当我尝试从代码中调用这个 SP 时出现以下错误
The data reader is incompatible with the specified 'Model.Table'. A member of the type, 'Column4', does not have a corresponding column in the data reader with the same name.
当我尝试在 MS SQL Studio 上调用它时,一切正常,有人知道我的错误在哪里吗?我该怎么办?
编辑:
这是在存储库中:
public IEnumerable<T> GetAllEntitiesWithParam(string procedureName, int param1, int param2) {
return _context.DbContext.Database.SqlQuery<T>("EXEC " + procedureName + " @param1, @param2", new SqlParameter("param1", param1), new SqlParameter("param2", param2));
}
这是内部代码:
IEnumerable<Table> list = _myRepo.GetAllEntitiesWithParam("SP_name", par1, par2);
【问题讨论】:
-
您将需要显示用于调用存储过程的代码。
-
@Paddy 更新我的问题
-
它说
Column4不存在。更新您的查询并在选择和检查中添加[Column4], -
@Bharadwaj 我理解错误,我不知道该怎么办。
-
@BorHunter
SELECT [Column1], [Column2], [Column3],[Column4] FROM [dbo].[Table](也选择Column4)
标签: c# asp.net sql asp.net-mvc tsql