我需要知道如何从数据库中更新和删除记录。我知道如何添加记录,但无法在数据库中更新和删除记录。
namespace Ex.Models
{
using System;
using System.Data.Entity;
using System.Data.Entity.Infrastructure;
public partial class MyEntities : DbContext
{
public MyEntities()
: base("name= MyEntities")
{
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
throw new UnintentionalCodeFirstException();
}
public DbSet<Friend> Friend { get; set; }
}
}
--
控制器
// POST: /Home/Edit/5
[HttpPost]
public ActionResult Edit(int id, Friend f)
{
try
{
// TODO: Add update logic here
myEntities.Friend.Attach(f);// Doesn't work.. How to update ?
myEntities.SaveChanges();
return RedirectToAction("Index");
}
catch
{
return View();
}
}
为了向数据库添加记录,我使用了以下代码。它起作用了;
myEntities.Friend.Add(f);
myEntities.SaveChanges();
return RedirectToAction("Index");
更新
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<Exp.Models.Friend>" %>
<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
Delete
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<h2>Delete</h2>
<h3>Are you sure you want to delete?</h3>
<fieldset>
<legend>Friend</legend>
<div class="display-label">Name</div>
<div class="display-field">
<%: Html.DisplayFor(model => model.Name) %>
</div>
</fieldset>
<% using (Html.BeginForm()) { %>
<p>
<input type="submit" value="Delete" /> |
<%: Html.ActionLink("Back to List", "Index") %>
</p>
<% } %>
</asp:Content>
发布于 2013-01-09 16:21:52
删除
myEntities.Friend.Remove(f);
myEntities.SaveChanges();
更新
Friend f = myEntities.Friend.FirstOrDefault(x => x.Id = MyId);
f.Name = NewName;
myEntities.SaveChanges();
发布于 2013-01-09 16:18:54
要更新,它与add相同,但没有.Friend.Add(f)
。加载项目,如下所示:
var friendEntity = myEntites.Friend.SingleOrDefault(f => f.Id == id);
friendEntity.Field1 = f.Field1;
...
myEntities.SaveChanges();
若要删除,请使用与.Add(f)
相反的.Remove
。
发布于 2018-08-07 18:33:42
更新:第一种方法
public void IsActiveItem(int id)
{
var data = db.IRAS_InventoryItems.Find(id);
data.IsActive = false;
db.Entry(data).State = EntityState.Modified;
db.SaveChanges();
}
更新:第二种方法
public void IsActiveItem(int id)
{
var data = (from a in db.IRAS_InventoryItems
where a.Id == id
select a).FirstOrDefault();
data.IsActive = false;
db.Entry(data).State = EntityState.Modified;
db.SaveChanges();
}
要删除:首先
public void Remove(int id)
{
var data = db.IRAS_InventoryItems.Find(id);
data.IsActive = false;
db.IRAS_InventoryItems.Remove(data);
db.SaveChanges();
}
删除:第二个
public void Remove(int id)
{
var data = (from a in db.IRAS_InventoryItems
where a.Id == id
select a).FirstOrDefault();
db.IRAS_InventoryItems.Remove(data);
db.SaveChanges();
}
https://stackoverflow.com/questions/14230851
复制相似问题