Как обновить значение в таблице A при создании строки в таблице B? - PullRequest
1 голос
/ 29 мая 2019

В моей платформе две таблицы UserInfo и PersonalInfo.Когда пользователь создает профиль, данные сохраняются в UserInfo.Представление для UserInfo имеет @Html.EditorFor, которое автоматически заполняется из Active Directory (если поле AD пусто, вспомогательный класс добавляет N / A вместо него).В зависимости от того, какое приложение пользователь решит использовать на платформе, потребуется больше информации, поэтому ему нужно будет создать строку в PersonalInfo.Представление для PersonalInfo как @Html.DropDownListFor, из которого пользователь может выбрать, будет обновлять отдел пользователей и центр затрат.

Я хотел бы обновить отдел для UserInfo, когда строка для PersonalInfo создается или обновляется.

В настоящее время, когда я создаю строку, она выглядит следующим образом:

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();
} 

Как мне обновить поле Department только в таблице PersonalInfo перед db.SaveChanges() называется?

1 Ответ

1 голос
/ 30 мая 2019

добавить строку в таблицу B: -

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);

обновить строку в таблице A: -

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

tableA.Department = viewModel.Department;

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

как только вы внесете все необходимые изменения, позвоните db.SaveChanges();

...