使用实体框架4删除对象的最简单方法

Jon*_*ood 4 .net winforms entity-framework-4

确认!我是Entity Framework的新手,我正在尝试找到删除项目的最简单方法.

我有一个列表框,数据源设置为数据库中的TagCategory对象.这工作正常.现在我想删除所选项目.所以我这样做:

TagCategory category = (TagCategory)lstCategories.SelectedItem;
using (MyEntities context = new MyEntities())
{
    context.AttachTo("TagCategories", category);
    context.DeleteObject(category);
    context.SaveChanges();
}
Run Code Online (Sandbox Code Playgroud)

这似乎很直接,但它不起作用.没有删除任何内容,没有错误消息,没有.

所以我看到我可以做这样的事情:

using (MyEntities context = new MyEntities())
{
    string cmd = String.Format("DELETE FROM TagCategory WHERE TagCatID=@ID",
        category.TagCatID));
    context.ExecuteStoreCommand(qry);
}
Run Code Online (Sandbox Code Playgroud)

这似乎有效.那么我只是去做有用的,或者实体框架4实际上能够做到这一点吗?

编辑:没关系.事实上,我有另一个问题阻止代码表单执行.我发布的两个片段似乎都运行正常.我很抱歉.

Kri*_*nov 6

您可以使用存根实体,如下所示:

using (var context = new MyEntities())
{
     var tagCategory = new TagCategory
     {
         PostId = category.TagCatID
     };
     context.TagCategories.Attach(tagCategory);
     context.DeleteObject(tagCategory);
     context.SaveChanges();
}
Run Code Online (Sandbox Code Playgroud)