C# - MVC 应用程序如何更新和删除数据库中的记录

标签 c# asp.net asp.net-mvc entity-framework ef-code-first

我需要知道如何更新和删除数据库中的记录。我知道如何添加记录但无法更新和删除数据库中的记录。

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

--

Controller

// 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>

最佳答案

删除

myEntities.Friend.Remove(f);
myEntities.SaveChanges();

更新

Friend f = myEntities.Friend.FirstOrDefault(x => x.Id = MyId);
f.Name = NewName;
myEntities.SaveChanges();

关于C# - MVC 应用程序如何更新和删除数据库中的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14230851/

相关文章:

c# - 自动映射器以及从集合或列表继承

sql - Azure SQL 数据库在本地运行时可以工作,但在发布到 Azure 时则无法工作

asp.net - 重定向主页

javascript - 使用 TextBox 将数据(列表)从 View 传递到 Controller

asp.net-mvc - 无法在 Visual Studio Express 2012 for Web 中创建 ASP.NET MVC 项目

c# - ListBox 中的多列数据

c# - 使用带参数的委托(delegate)

C#:ASP.NET Web-Messenger(聊天)

asp.net - 如何在回发时保留变量

asp.net - CRUD 动态创建表的最佳方式是什么?