如何使用代码优先的方法进行更新、删除过程
本文关键字:更新 删除 过程 方法 代码 何使用 | 更新日期: 2023-09-27 18:24:39
我有一个很大的疑问。我有"客户表格"。客户表单包含22个字段。我有"客户表格"的Db。它包含具有"多对多关系"的"多个表"。如果我使用"连接字符串"将我的Db与"Vb express 2012"连接,并创建EDMX文件。它显示每个表的视图。因此,我尝试将所有字段放在"单一视图"中,并尝试将数据插入多个表中。为此,我使用了"代码优先方法",我遵循了下面链接中提到的相同方法。工作正常。
http://www.codeproject.com/Tips/651495/Inserting-Data-into-Multiple-Tables-using-Code-Fir
现在我的问题是,我使用代码优先的方法完成了"插入"过程。。现在"如何使用这种方法进行UPDATE过程。因为我只做了插入过程。仍然需要进行更新、详细信息、删除。如何做到这一点?
谢谢。
将您的客户添加到视图中的foreach lop中,并将每个主键传递给控制器的编辑和删除方法,如下所示:
@foreach (var item in Model) {
<tr>
<td>
@Html.DisplayFor(modelItem => item.s1)
</td>
<td>
@Html.DisplayFor(modelItem => item.s2)
</td>
<td>
@Html.ActionLink("Edit", "Edit", new { id=item.id }) |
@Html.ActionLink("Delete", "Delete", new { id=item.id })
</td>
</tr>
}
然后在您的控制器中创建一个GET方法,以接受主键作为视图中的参数,如下所示:
public ActionResult Edit(int id)
{
Class1 class1 = db.Class1.Find(id);
return View(class1);
}
然后在编辑视图中制作一个表单,将值POST为:
@using (Html.BeginForm())
{
<div class="form-horizontal">
<h4>Class1</h4>
<hr />
@Html.HiddenFor(model => model.id)
<div class="form-group">
@Html.LabelFor(model => model.s1, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.s1, new { htmlAttributes = new { @class = "form-control" } })
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.s2, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.s2, new { htmlAttributes = new { @class = "form-control" } })
</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>
}
然后在您的控制器中创建POST方法,从如下视图接受模型作为参数:
[HttpPost]
public ActionResult Edit([Bind(Include = "id,s1,s2")] Class1 class1)
{
db.Entry(class1).State = EntityState.Modified;
db.SaveChanges();
return RedirectToAction("Index");
}
类似地,为Delete创建GET和POST方法。
基本上在更新方法中。。。
-
查找要更新的对象-示例您的datacontext类object=ctx,tablename=details
-
用新数据更新找到的对象
如果您没有将整个对象传递给该方法,那么只需传递要更新的对象的主键和新值
public void update(details newData)
{
var result=ctx.details.Find(id);
result.name=newData.Name;
result.age=newData.Age;
ctx.SaveChanges();
}
要删除:类似的过程
- 查找对象-例如您的datacontext类object=ctx,tablename=details
- 删除它
public void Delete(int id)
{
var result=ctx.details.Find(id);
ctx.details.Remove(result);
ctx.SaveChanges();
}