导入存储过程然后创建复杂类型并将函数命名为import“ sproc_Forums_GetForumGroupByID”后,出现此错误,一旦选择GridView,此过程将从ObjectDataSource获取单个论坛。我在ExecuteReader的行上收到错误。我已经有一个与实体框架一起使用的存储过程,并且它可以完美地运行,当我启动第二个过程时,我不明白发生了什么问题

没有在EntityContainer'CMSEntities'中定义EntitySet'sproc_Forums_GetForumGroupByID'。在简单标识符附近,第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;

        }
    }
}

最佳答案

验证sp是否存在于数据库中。
更新实体模型。
在模型浏览器中使用“导入功能”导入存储过程。


附带说明,我通常按以下方式使用存储过程。
IMO比使用EntityDataReader更简单。

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

关于c# - 没有在EntityContainer中定义EntitySet'sproc_Forums_GetForumGroupByID',我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9203632/

10-10 07:47