Я использую Entity Framework 4. Мне нужно обновить 2 разные таблицы. Сначала нужно сравнить введенное текстовое поле со значением базы данных. Если введенное текстовое поле не существует или не совпадает со значением базы данных, обновите 2 разные таблицы. Таблица 1 состоит из пользовательских данных, а таблица 2 содержит измененные данные.
Предположим, я обновил поле «Номер телефона», после чего обновленные данные должны быть сохранены в таблице сведений о пользователе, а измененные данные в файле должны быть сохранены в файле журнала, например, кто изменил, дата и имя файла.
Таблица пользовательских журналов
![UserLog Table](https://i.stack.imgur.com/JY4ZO.png)
Просмотр:
@model ApiSample.Models.TestData
@{
ViewBag.Title = "About";
}
<h2>@ViewBag.Title.</h2>
@using (Html.BeginForm("About", "Home", FormMethod.Post))
{
<form>
<p>Use this area to provide additional information.</p>
<p>@Html.LabelFor(model => model.Address) @Html.TextBoxFor(model => model.Address)</p>
<p>@Html.LabelFor(model => model.PhoneNumber) @Html.TextBoxFor(model => model.PhoneNumber)</p>
<button type="submit" title="Submit">Upload Image</button>
</form>
}
Модель:
public partial class TestData
{
public int ID { get; set; }
public string Address { get; set; }
public string PhoneNumber { get; set; }
}
public partial class UserLog
{
public int ID { get; set; }
public string UserName { get; set; }
public string ModifiedFiledName{ get; set; }
public Nullable<System.DateTime> Date { get; set; }
}
Контроллер:
// Я не знаю, можно ли это сделать таким образом.
[HttpPost]
public ActionResult About(TestData testdata, UserLog log)
{
if (ModelState.IsValid)
{
// insert into Userlog table
var inputUser = ConfigurationManager.AppSettings["INPUT_USER"].ToString().ToLower();
var usr = _db.UserLogs.SingleOrDefault(u => u.ID == id);
string date = DateTime.Now;
usr.UserName = inputUser;
usr.ModifiedFiledName = PhoneNumber;
usr.Date = date;
// update TestData table
_db.TestDatas.Add(testdata);
_db.Entry(testdata).State = EntityState.Added;
_db.SaveChanges();
}
return RedirectToAction("About");
}
Как обновить 2 таблицы в одном классе контроллера?