如何让我的asp.net mvc5应用程序更改我的sql表

时间:2017-07-31 19:44:59

标签: c# asp.net sql-server entity-framework

所以我有一个基于Visual Studio 2017的MVC5 ASP.NET应用程序,我有一个正确提取和显示数据的存储过程。但是,我希望用户能够单击创建,编辑或删除(我想要软删除,但我可以稍后处理),然后将该更改反映并保存在当前仅具有的实际SQL表中一个条目。我已经使用了实体框架,并被告知我需要有一种识别每一行的方式。所以我尝试创建一个ID属性,以便每一行都可以唯一标识。最初是主键的字段不正确。现在问题出在哪里。我试过回滚旧的迁移并运行一个新的迁移但无济于事。我已经尝试了所有可以想到的实体框架操作,但是我被卡住了。任何帮助都会很棒。

这是我编辑的代码,如果有人可以让我为我工作,我可以完成其余的工作。这几乎都是自动生成的。

    // GET: Exclusions/Edit/5
    public ActionResult Edit(int? ID)
    {
        if (ID == null)
        {
            return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
        }
        Exclusion exclusion = db.Exclusions.Find(ID);
        if (exclusion == null)
        {
            return HttpNotFound();
        }
        return View(exclusion);
    }

    [HttpPost]
    [ValidateAntiForgeryToken]
    public ActionResult Edit([Bind(Include = "PolicyNo,PolicyMod,InsuredName,ClientID")] Exclusion exclusion)
    {
        if (ModelState.IsValid)
        {
            db.Entry(exclusion).State = EntityState.Modified;
            db.SaveChanges();
            return RedirectToAction("Index");
        }
        return View(exclusion);
    }

这是我尝试运行的新迁移,即使它成功也没有区别

public partial class Migration1 : DbMigration
{
    public override void Up()
    {
        CreateTable(
            "dbo.Exclusion1", 
            c => new
                {
                    ID = c.Int(nullable: false, identity: true),
                    PolicyNo = c.Int(nullable: false),
                    PolicyMod = c.String(),
                    InsuredName = c.String(),
                    ClientID = c.Int(nullable: false),
                })
                .PrimaryKey(t => t.ID);
    }

    public override void Down()
    {
        DropTable("dbo.Exclusion1");
    }
}

如果需要更多信息,我很乐意提供,请问。提前谢谢。

编辑:这里有更多信息:
应用程序运行但是当我单击条目旁边的编辑时,它会将我带到HTTP Error 400.0页面。当我点击编辑时,网址变为XXXX / Exclusions / 124369622,这是旧主键的值而不是1,应该是新主键。但是,如果我在URL的末尾手动键入1,我仍然无处可去。我只是希望能够编辑一个字段,并在我的SQL表中反映出由存储过程创建的

0 个答案:

没有答案