在 table B 中创建行时如何更新 table A 中的值?

How do I update a value in table A when creating a row in table B?

我的平台有两个 tables UserInfoPersonalInfo。当用户创建配置文件时,数据将保存在 UserInfo 中。 UserInfo 的视图有一个 @Html.EditorFor,它是从 Active Directory 自动填充的(如果 AD 字段为空,助手 class 在其位置添加 N/A)。根据用户决定在平台内使用的应用程序,将需要更多信息,因此他们需要在 PersonalInfo 中创建一行。 PersonalInfo 的视图作为用户可以选择的 @Html.DropDownListFor 将更新该用户部门和成本中心。

我想在创建或更新 PersonalInfo 的行时更新 UserInfo 的部门。

目前,当我创建一行时,它看起来像这样:

if (ModelState.IsValid)
{
var myUserInfo = new myUserInfo
{
    UserId = userNum.Id,
    Address = viewModel.Address,
    City = viewModel.City,
    State = viewModel.State,
    CellPhone = viewModel.CellPhone,
    Department = viewmodel.Department,
    CostCenter = viewmodel.CostCenter,
    ZipCode = viewModel.ZipCode
};
db.MyUserInfos.Add(myUserInfo);
db.SaveChanges();
} 

如何在调用 db.SaveChanges() 之前仅更新 PersonalInfo table 中的 Department 字段?

在表中添加一行:-

var tableB = new TableB
{
    UserId = userNum.Id,
    Address = viewModel.Address,
    City = viewModel.City,
    State = viewModel.State,
    CellPhone = viewModel.CellPhone,
    Department = viewmodel.Department,
    CostCenter = viewmodel.CostCenter,
    ZipCode = viewModel.ZipCode
};
db.MyTableB.Add(tableB);

更新表中的一行:-

var tableA = db.MyTableA.Find(tableAId);

tableA.Department = viewModel.Department;

db.MyTableA.Attach(tableA);
db.Entry(tableA).State = EntityState.Modified

完成所有必需的更改后,请致电 db.SaveChanges();