C# 使用linq删除gridview中的行

C# 使用linq删除gridview中的行,c#,linq,entity-framework,C#,Linq,Entity Framework,我写这段代码是为了从Gridview中删除行,但它不起作用 class.cs中的代码: public bool bDeleteItem(int nItemID) { bool flag = false; try { Training_sNairoukhEntities1 sNairoukhEntities1 = new Training_sNairoukhEntities1(); IMS_Items oIMS_Items = sNairo

我写这段代码是为了从Gridview中删除行,但它不起作用

class.cs中的代码:

public bool bDeleteItem(int nItemID)
{ 
    bool flag = false;
    try
    {
        Training_sNairoukhEntities1 sNairoukhEntities1 = new Training_sNairoukhEntities1();
        IMS_Items oIMS_Items = sNairoukhEntities1.IMS_Items.Where(Entity => Entity.ItemID == nItemID).Single();
        sNairoukhEntities1.IMS_Items.Remove(oIMS_Items);
        int nResult = sNairoukhEntities1.SaveChanges();
        if (nResult > 0)
        {
            flag = true;
        }
    }
    catch (Exception ex)
    {
    }
    return flag;
}
Aspx.cs中的代码:

int nId = Convert.ToInt32(gvManageItem.DataKeys[Convert.ToInt32(e.CommandArgument)]["ItemID"].ToString());
if (e.CommandName == "cmDelete")
{
    ManageItem oManageItem = new ManageItem();
    if (oManageItem.bDeleteItem(nId))
    {
        lblValidation.Text = "Delete is successfully";
    }
    else
    {
        lblValidation.Text = "isnt delete";
    }
}
Remove method“将给定实体标记为已删除,以便在调用SaveChanges时将其从数据库中删除。请注意,在调用此方法之前,该实体必须以其他状态存在于上下文中。” 下面的命令将起作用: sNairoukhEntities1.条目(oIMS_项)。状态=System.Data.Entity.EntityState.Deleted

sNairoukhEntities1.SaveChanges()

可能是您忘记调用数据库上下文的SaveChanges()方法了吗?@ClaudioP它在这一行被调用:int nResult=snairoukhenties1.SaveChanges();当调用delete时,您是否调试了代码并检查了nId的值?@PraveenPaulose its为我提供了nId上的所有数据,但nReuslt==0中的问题应该是1您介意我将注释作为答案发布吗?