添加方法- MVC -将数据输入到两个表中
本文关键字:两个 MVC 方法 数据 输入 添加 | 更新日期: 2023-09-27 18:14:50
我有两个类:
* *用户UseP where** User有它的id (PK), UserP有User的id (FK)。
我在MVC 4工作。使用Fluent API
在项目中映射类以连接到数据库。我的项目被分成控制器、服务、模型和视图。
我有一个使用UserPr字段的User屏幕。
我如何在类中实例化它而不被向下?(这种方式不工作,因为关系,否则工作):
**CLASS USER.CS** public string Login { get { return this.UserP.login } set { login = value }}
包含屏幕添加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。
我不知道怎么操作,能帮我一下吗?如果我还没有说清楚,我再详细说明一下
您需要在foreach循环之前先保存User输入。
base.context.SaveChanges();