我正在用MVC 4編寫一個博客網站。我在CommentController中添加了以下操作方法來爲文章添加評論。評論具有導航屬性 - 作者(通過電子郵件地址標識)。 我想要做的是如果作者的電子郵件地址已經存在於數據庫中,我只插入新的評論。如果它是一個新的電子郵件地址,那麼還需要創建新的作者。實體框架 - 如果該值已經存在,如何不插入新值
--------下面是我創建的行動--------
public ActionResult Create(Comment comment)
{
if (ModelState.IsValid)
{
comment.CreatedDate = DateTime.Now;
myDb.Comments.Add(comment);
myDb.SaveChanges();
return RedirectToAction("Details", "Blog", new {id = comment.BlogId });
}
return View(comment);
}
--------下面是我的評論類----- ---
public class Comment
{
[Key]
public int CommentId { get; set; }
[Required(ErrorMessage="Please enter your comment")]
public string CommentContent { get; set; }
public DateTime CreatedDate { get; set; }
[Required]
public int AuthorId { get; set; }
public virtual Author Author { get; set; }
[Required]
public int BlogId { get; set; }
public virtual Blog Blog { get; set; }
}
謝謝大家
在我的答案中,一個好的粗略刺傷 - 基本上你需要檢查AuthorId是否是有效的(非null或0),並且它不存在於Authors表中通過使用循環或linq lambda –