添加方法- MVC -将数据输入到两个表中

本文关键字:两个 MVC 方法 数据 输入 添加 | 更新日期: 2023-09-27 18:14:50

我有两个类:

* *用户

UseP where** User有它的id (PK), UserP有User的id (FK)。

我在MVC 4工作。使用Fluent API

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

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

  1. 我如何在类中实例化它而不被向下?(这种方式不工作,因为关系,否则工作):

    **CLASS USER.CS**
    public string Login { get { return this.UserP.login } set { login = value }}
    
  2. 包含屏幕添加User的项目,我还应该改变屏幕的状态,这个状态是在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);
            }
        }

我已经试过了,但是我不能。如果项目。login只能工作,因为login在User.cs

中显示为[notmapped]。

总结:在包含屏幕(用户)我有一个字段,应该带来(UserP)登录。

当我触发包含方法时,他应该保存字段并保存使用UsuarioP IdUsuario作为键的用户登录,并更改登录状态(ParticipantType = 3)

我得到的错误:

列登录无效(因为User中确实没有登录)

调试它的时间只包括User字段,甚至通过foreach。

我不知道怎么操作,能帮我一下吗?如果我还没有说清楚,我再详细说明一下

添加方法- MVC -将数据输入到两个表中

您需要在foreach循环之前先保存User输入。

base.context.SaveChanges();