序列不包含任何元素......事实是,我知道它应该

时间:2014-04-21 16:22:09

标签: c# asp.net sql-server-2008-r2 linq-to-entities

背景:
在ASP.Net代码隐藏中使用C#通过LINQ-to-Entities调用SQL存储过程 此外,请注意我是所有这一切的完全新手。

问题:
我正在调用存储过程来获取数据库中列的max_length 它不断返回"序列包含无元素"在使用.First()时使用.FirstOrDefault()和(或者)默认值。

问题是,我知道它应该返回数字" 4500"因为我在SQL中运行查询以查看应该存在的内容 关于它为什么会这样做的任何想法?
我已经搜索过高低,但我无法找到遇到此问题的其他人知道它应该返回一个值。

代码:

short? `shorty = db.sp_GetMaxLength("ApplicantEssay").First();`

存储过程中使用的SQL查询的结果:

The SQL code

非常感谢您提供的任何帮助!!

编辑:
唯一涉及的其他代码是ADO.Net Entity自动生成的代码 至少,当我试图检查发生了什么时,它是程序逐步完成的唯一其他代码 我很难看到回报,并试图弄明白,但显然它什么都没有回复):

public virtual ObjectResult<Nullable<short>> sp_GetMaxLength(string cOLUMN_NAME)
{
    var cOLUMN_NAMEParameter = cOLUMN_NAME != null ?
    new ObjectParameter("COLUMN_NAME", cOLUMN_NAME) :
    new ObjectParameter("COLUMN_NAME", typeof(string));

    return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<Nullable<short>>("sp_GetMaxLength", cOLUMN_NAMEParameter);
}

编辑#2:我想我应该关闭这个问题。

我在sql中搞砸了一些东西,然后把它放回到我最初的东西并重新执行存储过程。之后,我删除了实体模型,将web.config重置为其原始状态预模型,关闭Visual Studio,重新打开Visual Studio,然后将ADO.Net实体模型重新添加到项目中。然后我重新运行代码,逐步完成它,然后突然间,&#34; 4500&#34;弹出为返回值。

我完全陷入困境,因为所有的代码完全相同而没有变化,但我想这是废弃和重新启动的力量???没有其他解释,虽然我讨厌这么简单。 : - (

感谢所有评论的人。 : - )

0 个答案:

没有答案