无法在EF中使用存储过程获取ALl记录

时间:2015-01-14 21:19:05

标签: c# entity-framework

我使用 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

解决后:

enter image description here

1 个答案:

答案 0 :(得分:0)

最有可能的是,您使用了Database.ExecuteSqlCommand而不是Database.SqlQuery<T>。前者返回int,仅对不返回数据(更新,删除等)的SQL查询有用,而后者返回DbRawSqlQuery<T>。例如,您的SelectAllComments方法应该执行以下操作

var comments = context.Database.SqlQuery<Comment>("exec SelectComments").ToList();