投稿を削除しようとしていますが、投稿を削除してもタグが削除されません。ブレークポイントを使用して状況を確認していますが、GetPost が呼び出されるたびにタグが含まれていないことに気付きました。以下の私のコードでは、delete メソッドで tagg を挿入/呼び出しようとしていますが、それを呼び出すことができないようです。
コントローラーでの私の削除
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());
}
GetPost
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 };
}
問題:
投稿を削除するたびにタグも削除されるように、削除機能にタグを含めようとしていますが、呼び出す方法がわかりません。plsは私を助けてくれます。申し訳ありませんが、クエリが苦手です。:(
更新:
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());
}
タグリストを呼び出すことができるようになりましたが、投稿で削除できませんでした。これにより、コレクションが変更されましたというエラーが表示されます。列挙操作が実行されない場合があります。