2015-09-27 24 views
0

我有两个类:添加方法 - MVC - 数据录入工作到两个表

**用户

UseP其中**用户有其ID(PK)和UserP有ID(FK)的用户。

我正在使用MVC 4.使用Fluent API。

这些类被映射到项目中以连接到数据库。我的项目分为控制器,服务,模型和视图。

我有一个使用UserPr字段的用户屏幕。

  1. 我怎样才能在课堂上实例化它,而不是一路下跌? (这样不会因为关系的工作,否则工作):

    **CLASS USER.CS** 
    
    public string Login { get { return this.UserP.login } set { login = value }} 
    
  2. 纳入屏幕添加项目的用户,我也应该改变屏幕的状态,这种状态是内UserP。

控制器

public ViewResultBase Add(User model) 
     { 
      if (this.ModelState.IsValid) 
      { 
       try 
       { 

        this.Service.SaveUserP(model); 
        return this.SuccessView(true); 
       } 
       catch (ValidationException exception) 
       { 
        base.AddValidationErrors(exception); 
        return base.PartialView(model); 
       } 
      } 
      else 
      { 
       return base.PartialView(model); 
      } 
     } 

服务

public void SaveUserP(User item) 
     { 
      //save fields from User (Running ok) 
      base.context.Usuario.Add(item); 

      //Attempt to save the login and their status in UserP 
      foreach (var userP in base.context.UserP.Where(x => x.IdUser == item.Id)) 
      { 
       item.login = userP.Login; 
       userP.ParticipantType = 3; 
       base.context.UsersP.Add(userP); 
      } 

     } 

我已经试过这种方式,但我不能。 如果item.login只是工作,因为登录的立场为[notmapped]在User.cs

总结:在列入屏幕(用户)我有一个字段,应该把(UserP)登录。

当我触发包容的方法,他应该救场,并保存用户登录使用UsuarioP IdUsuario为重点,也改变登录的状态(参与方= 3)

的错误,我得到:

无效的列登录(因为真的没有在用户没有登录)

时间来调试它仅包括用户领域,甚至通过在foreach。

我不知道如何操作,能帮助我吗?如果我不清楚,我会提供更多详细信息

回答

0

您将需要在您的foreach循环之前先保存用户输入。

base.context.SaveChanges();