C# 在实体框架生成的GridView上插入/更新/删除

C# 在实体框架生成的GridView上插入/更新/删除,c#,asp.net,entity-framework,gridview,C#,Asp.net,Entity Framework,Gridview,我正在使用EF 6.1.3和SQL server 2014用于此ASP.NET Web表单应用程序。我在.aspx页面设计视图上拖放了一个gridview,并使用智能标记选择数据源并自动填充网格。我在gridview上启用了编辑和删除操作,它可以正常工作,但我希望它使用我编写的函数 这是我尝试的删除操作 protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e) {

我正在使用EF 6.1.3和SQL server 2014用于此ASP.NET Web表单应用程序。我在.aspx页面设计视图上拖放了一个gridview,并使用智能标记选择数据源并自动填充网格。我在gridview上启用了编辑和删除操作,它可以正常工作,但我希望它使用我编写的函数

这是我尝试的删除操作

protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            if (e.CommandName == "Delete")
            {
                    int rowIndex = Convert.ToInt32(e.CommandArgument);
                    Result<Models.UserList> result;
                    using (ModelOperations.UserList.IUserListOperations dao = new ModelOperations.UserList.UserListOperations())
                    {
                        result = dao.removeUser(new Models.UserList()
                        {
                            ID = Convert.ToInt32((GridView1.Rows[rowIndex].Cells[1].Text))
                        });
                    }
            }
        }
protectedvoid GridView1\u行命令(对象发送方,GridViewCommandEventArgs e)
{
如果(如CommandName==“删除”)
{
int rowIndex=Convert.ToInt32(e.CommandArgument);
结果;
使用(ModelOperations.UserList.IUserListOperations dao=newmodelOperations.UserList.UserListOperations())
{
result=dao.removeUser(newmodels.UserList()
{
ID=Convert.ToInt32((GridView1.Rows[rowIndex].Cells[1].Text))
});
}
}
}
它实际上可以工作,但是页面给出了一个错误。我的UserListOperations中的方法有一个try-catch块,但是没有捕获异常,因为代码只是在工作

这是EF生成的GridView代码

<asp:GridView ID="GridView1" runat="server" OnRowCommand="GridView1_RowCommand" AllowSorting="True" AutoGenerateColumns="False" DataKeyNames="UserID" DataSourceID="myEntities">
            <Columns>
                <asp:CommandField ShowDeleteButton="True" ShowEditButton="True" />
                <asp:BoundField DataField="UserID" HeaderText="UserID" ReadOnly="True" SortExpression="UserID" />
                <asp:BoundField DataField="UserName" HeaderText="UserName" SortExpression="UserName" />
                <asp:BoundField DataField="UserPW" HeaderText="UserPW" SortExpression="UserPW" />
                <asp:BoundField DataField="UserType" HeaderText="UserType" SortExpression="UserType" />
            </Columns>
        </asp:GridView>

这就是错误所在

受意外事件影响的存储更新、插入或删除语句 行数(0)。实体可能已被修改或删除,因为 实体已加载。刷新ObjectStateManager条目


如果我从文本框中获取值并以这种方式发送值,则不会出现错误,因此我猜测这与自动生成的网格有关。

如果您选中此链接:您可以获得有关您的问题的更多信息,我想谢谢您的回复。我确实检查了那个链接,但没有/找不到我问题的答案。在我的情况下,删除操作仍然有效,我仍然得到这个错误,这就是我试图理解为什么会发生这种情况的原因。如果您检查此链接:您可以了解有关您的问题的更多信息,我想谢谢您的回复。我确实检查了那个链接,但没有/找不到我问题的答案。在我的例子中,删除操作是有效的,我仍然会遇到这个错误,这就是我试图理解为什么会发生这种情况的原因。