Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Entity framework 在单个操作中添加新的相关实体_Entity Framework_Asp.net Mvc 5_Entity Framework 6 - Fatal编程技术网

Entity framework 在单个操作中添加新的相关实体

Entity framework 在单个操作中添加新的相关实体,entity-framework,asp.net-mvc-5,entity-framework-6,Entity Framework,Asp.net Mvc 5,Entity Framework 6,每个谜语都有一个或多个问题,如何通过提交一个表单向谜语添加谜语和问题 这是RiddlesController创建操作代码: public ActionResult Create(RiddleViewModel model) { if (ModelState.IsValid) { try { _db.Riddles.Add(new

每个谜语都有一个或多个问题,如何通过提交一个表单向谜语添加谜语和问题

这是RiddlesController创建操作代码:

public ActionResult Create(RiddleViewModel model)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    _db.Riddles.Add(new Models.Riddle
                    {
                        Name = model.Name,
                        Description = model.Description ,
                        CreationDate = DateTime.Now,
                        User = _db.Users.Find(User.Identity.GetUserId()),
                    });
                    _db.Questions.Add(new Models.Question
                    {
                        Body = model.FirstQuestionBody,
                        Answer = model.FirstQuestionAnswer,
                        CreationDate = DateTime.Now,
                        // What should I write here? or is there any better way to accomplish this?
                        Riddle = ????? 
                    });
                    _db.SaveChanges();
                    return RedirectToAction("Index");
                }

                catch
                {
                    return View();
                }
            }
            return View();
        }
这是Riddle模型代码:

public class Riddle
{
    public int Id { get; set; }
    public string Name { get; set; }
    [MaxLength(200)]
    [DataType(DataType.MultilineText)]
    public string Description { get; set; }
    public List<Review> Reviews { get; set; }
    [Required]
    public ApplicationUser User { get; set; }
    public virtual List<Question> Questions { get; set; }
    [Column(TypeName = "datetime2")]
    public DateTime CreationDate { get; set; }    

}
public class RiddleViewModel
    {
        [Required]
        public string Name { get; set; }
        [MaxLength(200)]
        [DataType(DataType.MultilineText)]
        public string Description { get; set; }
        // Question properties
        [DataType(DataType.MultilineText)]
        public string FirstQuestionBody { get; set; }
        public string FirstQuestionAnswer { get; set; }
    }
这是模型代码:

public class Riddle
{
    public int Id { get; set; }
    public string Name { get; set; }
    [MaxLength(200)]
    [DataType(DataType.MultilineText)]
    public string Description { get; set; }
    public List<Review> Reviews { get; set; }
    [Required]
    public ApplicationUser User { get; set; }
    public virtual List<Question> Questions { get; set; }
    [Column(TypeName = "datetime2")]
    public DateTime CreationDate { get; set; }    

}
public class RiddleViewModel
    {
        [Required]
        public string Name { get; set; }
        [MaxLength(200)]
        [DataType(DataType.MultilineText)]
        public string Description { get; set; }
        // Question properties
        [DataType(DataType.MultilineText)]
        public string FirstQuestionBody { get; set; }
        public string FirstQuestionAnswer { get; set; }
    }

您可以按如下所示进行尝试

_db.Questions.Add(new Models.Question
                    {
                        Body = model.FirstQuestionBody,
                        Answer = model.FirstQuestionAnswer,
                        CreationDate = DateTime.Now,
                        Riddle = new Models.Riddle
                                    {
                                     Name = model.Name,
                                     Description = model.Description ,
                                     CreationDate = DateTime.Now,
                                     User = _db.Users.Find(User.Identity.GetUserId()),
                                    }
                       });

                    _db.SaveChanges();

你也能展示你的模型代码吗?不要放图片。只是粘贴代码。我是新来的,找不到如何在注释中添加代码。1.sec@Sampath好的,完成了。你能把
ViewModel的代码也放进去吗?你能把
Create
方法代码也放进去,而不是图像。因为我们不能
复制/粘贴它到我们的解决方案中。