【发布时间】:2014-05-15 23:56:01
【问题描述】:
我有一个使用 c# ASP.NET 和实体框架构建的博客网站。我正在设置一个页面来创建一个允许用户添加标签的博客。这工作正常。但是,在编辑博客文章时,我确信我一定错过了一个技巧。我不知道如何在一个简单的过程中更新附加到博客文章的所有标签。
博客和标签实体设置为多对多。
所以目前我有:
_blog = blogRepo.GetBlogByID(blog.Id);
_blog.Tags = blog.Tags;
blogRepo.UpdateBlog(_blog);
blogRepo.Save();
如果我要添加新标签,这会很好。但是,如果我要删除标签,它只适用于实体框架方面。一旦 DB Context 重新初始化,它就会从数据库中获取标签仍附加到博客的信息。
例如我在博客中添加了标签“测试”。我编辑博客并删除标签“测试”并保存博客。博客由相同的请求返回,标签列表为空。如果我再对博客提出另一个请求,那么标签“test”又回来了。
我想我可以每次都从博客中删除所有标签,然后添加其中的任何标签。但我确信一定有更好的方法。还是设置有误,这应该在当前设置中起作用?
任何帮助表示赞赏。特别是如果它指出了我没有看到的愚蠢的东西。
【问题讨论】:
-
你能在你删除的地方添加你的代码吗?
-
@NathanA 实际上没有任何删除代码。 blog.Tags 是标签的新列表,可能有新标签、可能有更少标签或可能完全相同。删除是我正在努力解决的问题。
标签: c# asp.net-mvc-5 entity-framework-6