0

我有两个实体。用户和用户联系人。

我创建了两个类。用户

public class PUser
{
    public int PUserId { get; set; }

    public virtual UserContact UserContact { get; set; }
}

public class UserContact
{
    public int UserContactId { get; set; }

    public virtual PUser PUser { get; set; }
}

我可能有多个用户联系人,但在我的 MVC 视图中 - 我只想添加一个用户联系人。

我怎样才能做到这一点?以上是创建表但未在用户联系人表中插入 Puserid。

使用的 Fluent api 是。

 modelBuilder.Entity<PUser>()
                .HasOptional(p => p.UserContact).WithRequired(p => p.PUser);
4

1 回答 1

1

这是一个one-to-one关系,因此您需要UserContact在创建时初始化您的User. 我就是这样做的。

    [HttpGet]
    public ActionResult Create()
    {
        return View();
    }

    [HttpPost]
    public ActionResult Create(PUser model)//You should use a ViewModel here
    {
        if (ModelState.IsValid)
        {
            var db = new EfDb(); // If you introduce abstration to you Context, you could avoid this.               
            var user= new PUser
                             {   
                                 Name = model.Name,                                             
                                 UserContact= new UserContact
                                                    {
                                                       Phone = model.UserContact.Phone             
                                                    }
                              };

             db.PUser.Add(user);
             db.SaveChanges();
             return RedirectToAction("Index", "Home");
         }                        
        return View(model);
    }
于 2013-05-16T19:45:05.463 回答