0

MVC 4を使用してブログWebサイトを作成しています。記事にコメントを追加するために、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; }

    }

皆さん、ありがとうございました

4

1 に答える 1

1
var authors = myDb.Authors;
if((comment.AuthorId != null || comment.AuthorId !=0) && !authors.Exists(a=>a.AuthorID == comment.AuthorId))
{
   //do your creation of new Author and then post the article
}
else//author exists
{
   //just post article
}

これは、myDb に Authors というテーブルがあることを前提としており (実際に存在すると思います)、ブーリアンの Exists ラムダを調整して、AuthorId を正しく一致させる必要がある場合があります。

于 2013-01-13T11:52:35.173 に答える