EntitySet';sproc_Forums_GetForumGroupByID';未在EntityCon

本文关键字:未在 EntityCon GetForumGroupByID sproc EntitySet Forums | 更新日期: 2023-09-27 18:23:55

导入存储过程后,我会出现此错误,然后创建一个复杂类型并将函数命名为import"sproc_forum_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;
        }   
    }
}

EntitySet';sproc_Forums_GetForumGroupByID';未在EntityCon

  1. 验证sp是否存在于数据库中
  2. 更新实体模型
  3. 使用模型浏览器中的"导入函数"导入存储过程

顺便说一下,我通常使用以下存储过程。IMO它比使用EntityDataReader更简单。

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