Как обновить данные в базе данных с помощью linq - PullRequest
1 голос
/ 02 апреля 2019

Я изучаю C # MVC, используя linq. Сейчас я не знаю, как сохранить обновленные данные в базе данных

Как обновить данные?

public ActionResult Edit(Table_2 emp)
{
    List<Table_2> objemp = new List<Table_2>();
    using (var dbs = new guruEntities())
    {
        var name = emp.name;
        var dep = emp.dprmt;
        var query = from n in dbs.Table_2.Where(n => n.name == name && n.dprmt == dep)
            orderby n.id
            select n;
        dbs.SaveChanges();
    }

    return RedirectToAction("Index");
}

Вид:

<div class="form-horizontal">
<h4>Table_2</h4>
<hr />
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
@Html.HiddenFor(model => model.id)
<div class="form-group">
    @Html.LabelFor(model => model.name, htmlAttributes: new { @class = "control-label col-md-2" })
    <div class="col-md-10">
        @Html.EditorFor(model => model.name, new { htmlAttributes = new { @class = "form-control" } })
        @Html.ValidationMessageFor(model => model.name, "", new { @class = "text-danger" })
    </div>
</div>
<div class="form-group">
    @Html.LabelFor(model => model.dprmt, htmlAttributes: new { @class = "control-label col-md-2" })
    <div class="col-md-10">
        @Html.EditorFor(model => model.dprmt, new { htmlAttributes = new { @class = "form-control" } })
        @Html.ValidationMessageFor(model => model.dprmt, "", new { @class = "text-danger" })
    </div>
</div>
<div class="form-group">
    <div class="col-md-offset-2 col-md-10">
        <input type="submit" value="Save" class="btn btn-default" />
    </div>
</div>
</div>

Я не знаю, как получить пользовательские данные из текстового поля и сохранить в базе данных

Ответы [ 2 ]

1 голос
/ 02 апреля 2019

Как вы сказали, вы просто хотите обновить записи в базе данных.затем сначала получите записи из базы данных, которые вы хотите обновить, как показано ниже:

public ActionResult Edit(Table_2 emp)
{
      var table2 = _dbContext.Table_2.Where(x => x.Id == emp.id).FirstOrDefault(); //SingleOrDefault() also used.
      if (table2 == null)
      {
           throw new Exception("not found");
      }
       table2.name = emp.name;
       table2.dprmt = emp.dep;
       dbs.SaveChanges();
       return RedirectToAction("Index");
}

сначала получите записи из базы данных и обновите эти записи и вызовите SaveChanges().и если вам нужно добавить новые записи в базу данных, то создайте первую сущность, такую ​​как

Table_2 entity = new Table_2();
        entity.id = 1;
        entity.name = "name";
        entity.dprmt = "dept";
        _dbContext.Table_2.Add(entity)
        dbs.SaveChanges();

, которую вы можете сохранить и обновить в базе данных.дайте мне знать, если возникнут вопросы:)

0 голосов
/ 02 апреля 2019

вы используете переменную «query» для извлечения данных из хранилища данных (я полагаю, Entity Framework). однако, как только вы получите данные, вам необходимо обновить их. это должно быть что-то вроде

query.name = "new name";

, а затем, когда вы вызываете сохранение изменений, EF примет это изменение и обновит базу данных.

PS:

переменные, которые вы создали "name" и "deps", являются избыточными. вы можете обновить сущность напрямую, как только получите ее из контекста.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...