背景:
在ASP.Net代码隐藏中使用C#通过LINQ-to-Entities调用SQL存储过程
此外,请注意我是所有这一切的完全新手。
问题:
我正在调用存储过程来获取数据库中列的max_length
它不断返回"序列包含无元素"在使用.First()
时使用.FirstOrDefault()
和(或者)默认值。
问题是,我知道它应该返回数字" 4500"因为我在SQL中运行查询以查看应该存在的内容
关于它为什么会这样做的任何想法?
我已经搜索过高低,但我无法找到遇到此问题的其他人知道它应该返回一个值。
代码:
short? `shorty = db.sp_GetMaxLength("ApplicantEssay").First();`
存储过程中使用的SQL查询的结果:
非常感谢您提供的任何帮助!!
编辑:
唯一涉及的其他代码是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;弹出为返回值。
我完全陷入困境,因为所有的代码完全相同而没有变化,但我想这是废弃和重新启动的力量???没有其他解释,虽然我讨厌这么简单。 : - (
感谢所有评论的人。 : - )