C# 未从数据库asp.net中删除项目

C# 未从数据库asp.net中删除项目,c#,entity-framework,linq,telerik,C#,Entity Framework,Linq,Telerik,我正在使用实体框架来填充网格,但我正在尝试删除该项,但没有错误,只是没有任何操作 我的网格如下所示,不知道问题是什么,因为我使用的是类型播放器,所以它应该被删除 我没有这方面的任何进展。有人能帮我一下吗 <telerik:RadGrid ID="grdSoccerPlayers" runat="server" AutoGenerateColumns="False" GroupPanelPosition="Top" AutoGenerateDeleteColumn="True"

我正在使用实体框架来填充网格,但我正在尝试删除该项,但没有错误,只是没有任何操作

我的网格如下所示,不知道问题是什么,因为我使用的是类型播放器,所以它应该被删除

我没有这方面的任何进展。有人能帮我一下吗

    <telerik:RadGrid ID="grdSoccerPlayers" runat="server" AutoGenerateColumns="False"    GroupPanelPosition="Top" AutoGenerateDeleteColumn="True" AutoGenerateEditColumn="True" OnItemCommand="grdSoccerPlayers_ItemCommand" CellSpacing="-1" GridLines="Both" AllowAutomaticDeletes="True">

        <MasterTableView    CommandItemDisplay="Top">
            <Columns>
                <telerik:GridBoundColumn DataField="id" DataType="System.Guid" FilterControlAltText="Filter id column" HeaderText="id" ReadOnly="True" SortExpression="id" UniqueName="id">
                </telerik:GridBoundColumn>
                <telerik:GridBoundColumn DataField="Name" FilterControlAltText="Filter Name column" HeaderText="Name" ReadOnly="True" SortExpression="Name" UniqueName="Name">
                </telerik:GridBoundColumn>
                <telerik:GridBoundColumn DataField="player_id" FilterControlAltText="Filter player_id column" HeaderText="player_id" ReadOnly="True" SortExpression="player_id" UniqueName="player_id">
                </telerik:GridBoundColumn>
                <telerik:GridBoundColumn DataField="gender" FilterControlAltText="Filter gender column" HeaderText="gender" ReadOnly="True" SortExpression="gender" UniqueName="gender">
                </telerik:GridBoundColumn>
                <telerik:GridBoundColumn DataField="town" FilterControlAltText="Filter town column" HeaderText="town" ReadOnly="True" SortExpression="town" UniqueName="town">
                </telerik:GridBoundColumn>
                <telerik:GridBoundColumn DataField="telephone" FilterControlAltText="Filter telephone column" HeaderText="telephone" ReadOnly="True" SortExpression="telephone" UniqueName="telephone">
                </telerik:GridBoundColumn>
                <telerik:GridBoundColumn DataField="email" FilterControlAltText="Filter email column" HeaderText="email" ReadOnly="True" SortExpression="email" UniqueName="email">
                </telerik:GridBoundColumn>
                <telerik:GridCheckBoxColumn DataField="active" DataType="System.Boolean" FilterControlAltText="Filter active column" HeaderText="active" ReadOnly="True" SortExpression="active" UniqueName="active">
                </telerik:GridCheckBoxColumn>
                <telerik:GridBoundColumn DataField="createdDate" DataType="System.DateTime" FilterControlAltText="Filter createdDate column" HeaderText="createdDate" ReadOnly="True" SortExpression="createdDate" UniqueName="createdDate">
                </telerik:GridBoundColumn>
                <telerik:GridBoundColumn DataField="author" FilterControlAltText="Filter author column" HeaderText="author" ReadOnly="True" SortExpression="author" UniqueName="author">
                </telerik:GridBoundColumn>
                <telerik:GridBoundColumn DataField="teamId" DataType="System.Guid" FilterControlAltText="Filter teamId column" HeaderText="teamId" ReadOnly="True" SortExpression="teamId" UniqueName="teamId">
                </telerik:GridBoundColumn>

                <telerik:GridBoundColumn DataField="address" FilterControlAltText="Filter address column" HeaderText="address" ReadOnly="True" SortExpression="address" UniqueName="address">
                </telerik:GridBoundColumn>

                <telerik:GridButtonColumn CommandName="Delete" Text="Delete" UniqueName="Delete"
     ButtonType="ImageButton" ImageUrl="~/Icons/delete.png" AutoPostBackOnFilter="true" HeaderText="Actions"
     ConfirmTitle="Delete" ConfirmDialogType="Classic"   
     ConfirmText="Are you sure want to delete the selected player?" />
            </Columns>
        </MasterTableView>
    </telerik:RadGrid> 

        if (e.CommandName == "Delete")
            {
                GridDataItem item = e.Item as GridDataItem;
                Guid strId = new Guid(item.GetDataKeyValue("id").ToString());

                player _player = _dal.GetPlayerBYID(strId);
                _dal.SoccerEntities.AddToplayers(_player);
                _dal.SoccerEntities.DeleteObject(_player);

                _dal.SoccerEntities.SaveChanges();
                grdSoccerPlayers.DataBind();
                grdSoccerPlayers.Rebind();
            }

我猜你错过了一个命令。查看此控件的文档

你为什么要使用GUID?为什么不使用主键或像唯一值这样的简单标识类型?GUID是问题所在,请按原样使用ID。您要删除的项目是否是另一个表的外键?如果该项是另一个表中的外键,SQL将停止您。一支球队可以有很多球员,但球员不是外键self@Timmy如上所述,一个球员可以在一个团队中,即一个团队可以有很多球员,但可以退出that@TranscendentGuid不是问题所在,它是一个unqiue值!不,我没有丢失它。请查看代码并理解我在item命令上手动调用delete object
     public player GetPlayerBYID(Guid _playerId)
        {
            try
            {
                if (_playerId == Guid.Empty)
                {
                    player _player = new player();
                    _player.player_id = "16-56-232";
                    return _player;
                }
                else
                {
                    var q = SoccerEntities.players.Where(p => p.id == _playerId);

                    if (q == null)
                        throw new EntityContextException(string.Format("A player could not be found {0}!", _playerId));
                    else
                        return q.ToList()[0];
                }
            }
            catch (Exception ex)
            {
                throw new EntityContextException("GetPlayerBYID failed.", ex);
            }
        }