确认!我是实体框架的新手,正在尝试找到删除项目的最简单方法。
我有一个列表框,其数据源设置为数据库中的 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 实际上能够做到这一点?
编辑:没关系。事实上,我还有另一个问题阻止了代码的执行。我发布的两个片段似乎都工作正常。我很抱歉。
您可以使用存根实体,如下所示:
using (var context = new MyEntities())
{
var tagCategory = new TagCategory
{
PostId = category.TagCatID
};
context.TagCategories.Attach(tagCategory);
context.DeleteObject(tagCategory);
context.SaveChanges();
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)