.net - 使用 Entity Framework 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();
}

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

所以我看到我可以做这样的事情:
using (MyEntities context = new MyEntities())
{
    string cmd = String.Format("DELETE FROM TagCategory WHERE TagCatID=@ID",
        category.TagCatID));
    context.ExecuteStoreCommand(qry);
}

这似乎有效。那么我是选择有效的方法,还是 Entity Framework 4 实际上能够做到这一点?

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

最佳答案

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

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

关于.net - 使用 Entity Framework 4 删除对象的最简单方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4787652/

相关文章:

asp.net - 从 MVC 2 升级到 MVC 4

.net - Dllimport 可在控制台应用程序中运行,但不能在 ASP.NET 网站中运行

c# 文本框到数据库

c# - 如何向 UserControl 添加属性?

c# - 如何更改 Windows 窗体标题栏中的文本?

entity-framework-4 - Entity Framework -当父记录已经存在时在子表中插入记录

c# - Delegate.CreateDelegate 与 DynamicMethod 与表达式

c# - C# 中通用类的特化模式?

.net - MySQL Entity Framework 4.0 存储过程字段映射

c# - 包含对与不同上下文关联的查询的引用的 LINQ 表达式