我正在尝试删除帖子,但是每当我删除帖子时,它的标签都不会被删除。我正在使用断点来查看事情是如何发生的,并且我注意到 GetPost 在调用时不包含该标记。在下面的代码中,您可以看到我正在尝试在 delete 方法中插入/调用标记,但似乎无法调用它。
我在控制器中的删除
public ActionResult Delete(int id)
{
if (IsUser)
{
Post post = GetPost(id);
var tagss = db.Tags.Where(tg => tg.ID == id); // this should call GetTag but i dunno how :(
foreach (var t in tagss)
{
db.Tags.DeleteObject(t);
}
db.DeleteObject(post);
db.SaveChanges();
}
return Redirect(Request.UrlReferrer.ToString());
}
获取邮政
private Post GetPost(int? id)
{
return id.HasValue ? db.Posts.Where(x => x.ID == id).First() : new Post() { ID = -1 };
}
获取标签
private Tag GetTag(string tagName)
{
return db.Tags.Where(x => x.Name == tagName).FirstOrDefault() ?? new Tag() { Name = tagName };
}
问题:
我试图在删除功能中包含标签,这样每当我删除我的帖子时,它也会被删除,但我不知道如何调用它。请帮助我,谢谢,对不起,我不擅长查询。:(
更新:
public ActionResult Delete(int id)
{
if (IsUser)
{
Post post = GetPost(id);
var tagss = var taggs = post.Tags;
foreach (var t in tagss)
{
db.Tags.DeleteObject(t);
}
db.DeleteObject(post);
db.SaveChanges();
}
return Redirect(Request.UrlReferrer.ToString());
}
我现在可以调用标签列表,但仍然无法在我的帖子中删除它。这给了我一个错误集合已修改;枚举操作可能无法执行。