我的DAL基于Entity Framework Code First。没有数据保存在数据库中,也没有错误被触发
我有一个后期模型和标签模型。一个职位可以有几个职位附加。
这是帖子:
public class Post
{
[Key]
public int PostID { get; set; }
...
public virtual ICollection<Tag> Tags { get; set; }
}
这是我的标签:
public class Tag
{
[Key]
public int TagID { get; set; }
[Required, StringLength(50)]
public string Name { get; set; }
public virtual ICollection<Post> Posts { get; set; }
}
当我救我的帖子,我没有任何错误,但没有被保存在数据库中。
正如你可以在上面的TagID的截图看到的是0,我不知道是什么原因???
任何想法?建议?
我的表格在Sql Server中正确创建。
谢谢。
PS:我的代码一定是好的,因为我从其他位置(它的工作原理)复制/粘贴它。
UPDATE
这里是更新标签实体(根据具体的职位)
Tag t = m_TagRepository.GetTag(tag.Trim().ToUpper());
if (t == null) t = new Tag { Name = tag.Trim().ToUpper() };
post.Tags.Add(t);
下面是代码保存到一个职位的变化(以下标签)
代码public void SavePost(Post post)
{
if (post.PostID == 0)
{
m_Context.Posts.Add(post);
}
else
{
var entry = m_Context.Entry(post);
entry.State = EntityState.Modified;
}
m_Context.SaveChanges();
}
我从编辑视图页获取回复:
[Authorize, HttpPost, ValidateInput(false), Theme("Admin")]
public ActionResult Edit(PostFullViewModel postToEdit)
{
if (!ModelState.IsValid)
return View();
Post post = Mapper.Map<PostFullViewModel, Post>(postToEdit);
m_PostBusiness.UpdateTags(post, postToEdit.TagString);
m_PostBusiness.SavePost(post);
TempData.SetStatusMessage(Strings.Post_SavedSuccessfully);
return RedirectToAction("Manage");
}
向我们展示创建实体并将其添加到上下文的代码。 –
我更新了我的问题以显示代码。谢谢。 – Bronzato
你仍然没有展示你是如何获得这个职位的? –