我的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
你仍然沒有展示你是如何獲得這個職位的? –