EntitySet'sproc_Forums_GetForumGroupByID'未在EntityContainer中定义

时间:2012-02-09 00:11:19

标签: c# asp.net entity-framework

在我导入存储过程然后创建复杂类型并将函数命名为import" sproc_Forums_GetForumGroupByID"之后,我收到此错误选择GridView后,此过程从ObjectDataSource获取单个论坛。我在ExecuteReader的行上得到了错误。我已经有一个存储过程与实体框架一起工作,它完美地工作我不明白当我开始第二个程序时出错了什么

EntitySet' sproc_Forums_GetForumGroupByID'未在EntityContainer' CMSEntities'中定义。近简单标识符,第1行,第13列。

public class Forums
{
    public Forum GetForumGroup(int ForumGroupID)
    {
        using (EntityConnection conn = new EntityConnection("name=CMSEntities"))
        {
            conn.Open();
            EntityCommand cmd = new EntityCommand("CMSEntities.sproc_Forums_GetForumGroupByID", conn);
                cmd.Parameters.AddWithValue("ForumGroupID", ForumGroupID);


                using (EntityDataReader reader = cmd.ExecuteReader(CommandBehavior.SingleRow))
                {
                    /*
                    Forum forum = null;
                    int forumID = (int)reader[0];
                    string addedBy = reader[1].ToString();
                    DateTime addedDate = (DateTime)reader[2];
                    string title = reader[3].ToString();
                    string updatedBy = reader[4].ToString();
                    DateTime updatedDate = (DateTime)reader[5];
                    bool active = (bool)reader[6];

                    forum = new Forum(forumID, addedBy, addedDate, title, "", 0, 0, false, "",
                        updatedBy, updatedDate, active, "", 0, "", DateTime.Now, "");
                    return forum;*/
                }               

                return null;

        }   
    }
}

1 个答案:

答案 0 :(得分:0)

  1. 验证数据库中是否存在sp。
  2. 更新实体模型。
  3. 在模型浏览器中使用“导入功能”导入存储过程。
  4. 作为旁注,我通常使用我的存储过程如下。 IMO它比使用EntityDataReader更简单。

    public Forum GetForumGroup(int forumGroupID)     
    {
        using(CMSEntities cmsContext = new CMSEntities())
        {
           var forum = cmsContext.sproc_Forums_GetForumGroupByID(forumGroupID);
           //...
        }
    }