我使用 Entity Framework 5 。在我的项目中,我创建了一个存储过程来获取所有记录并将其添加到Entity Framework。
我想获取所有记录,但存储过程返回int
。
当我想要使用此存储过程获取所有记录,并使用foreach迭代它们
C#代码:
using (var context=new AngularJsEntities())
{
foreach (comment item in context.SelectAllComments())
{
// do something
}
}
我该怎么做?
我在谷歌搜索但我找不到有用的结果。
我的存储过程代码:
create procedure SelectComments
AS
Begin
select CommentBody, Name, Email, Id
from comments
end
解决后:
答案 0 :(得分:0)
最有可能的是,您使用了Database.ExecuteSqlCommand
而不是Database.SqlQuery<T>
。前者返回int
,仅对不返回数据(更新,删除等)的SQL查询有用,而后者返回DbRawSqlQuery<T>
。例如,您的SelectAllComments
方法应该执行以下操作
var comments = context.Database.SqlQuery<Comment>("exec SelectComments").ToList();