Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 3 实体框架更新在更新记录时显示数据库并发性?_Asp.net Mvc 3_Entity Framework - Fatal编程技术网

Asp.net mvc 3 实体框架更新在更新记录时显示数据库并发性?

Asp.net mvc 3 实体框架更新在更新记录时显示数据库并发性?,asp.net-mvc-3,entity-framework,Asp.net Mvc 3,Entity Framework,在我的代码中,更新发生在视图和控制器中。创建和更新的控制器和视图相同。创建配置文件工作良好。但在更新时,它会显示DbConcurrency异常消息。请帮我找到 更新记录时出现异常消息: Store update、insert或delete语句影响了意外的行数0。自加载实体后,实体可能已被修改或删除。刷新ObjectStateManager条目 我的更新配置文件页面包含profile.cshtml @model Sitecss.Models.Profile @using Mi

在我的代码中,更新发生在视图和控制器中。创建和更新的控制器和视图相同。创建配置文件工作良好。但在更新时,它会显示DbConcurrency异常消息。请帮我找到

更新记录时出现异常消息: Store update、insert或delete语句影响了意外的行数0。自加载实体后,实体可能已被修改或删除。刷新ObjectStateManager条目

我的更新配置文件页面包含profile.cshtml

@model Sitecss.Models.Profile
           @using Microsoft.Web.Helpers;
@{
    ViewBag.Title = "CreateProfile";
    Layout = "~/Views/Shared/_HomeLay.cshtml";
}



@{
    var GT = new SelectList(new[] {
        new {ID ="Team DeathMatch", Name="Team DeathMatch"},
        new {ID ="Search & Destroy", Name="Search & Destroy"},
        new {ID ="Flag Runner", Name="Flag Runner"},
        new {ID ="Domination", Name="Domination"},
        new {ID ="Kill Confirmed", Name="Kill Confirmed"}
    },"ID","Name");
    var Spec = new SelectList(new []{
        new {ID ="Assault", Name="Assault"},
        new {ID ="Tactical", Name="Tactical"},
        new {ID ="Long-Range Eliminations", Name="Long-Range Eliminations"},
        new {ID ="Noob", Name="Noob"}
    }, "ID", "Name");

}


<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>


@using (Html.BeginForm("CreateProfile", "Home", FormMethod.Post, new { @encType = "multipart/form-data" }))
{

    <div id="content1">
    @Html.ValidationSummary(true)
<h4>Create a Profile</h4>

    <div>
    @Html.LabelFor(m => m.SteamName)
    </div>
    <div>
    @Html.TextBoxFor(m => m.SteamName, new { @class = "wide" })
    @Html.ValidationMessageFor(m => m.SteamName)
    </div>

    <div>
    @Html.LabelFor(m =>m.UserImg)
    </div>
    <div>

    <input type="file" name="image" class="image" /> <br />
    </div>

    <div>
    @Html.LabelFor(m => m.GameType)
    </div>
    <div>
    @Html.DropDownListFor(m => m.GameType, GT, new { @class = "wide" })
    @Html.ValidationMessageFor(m => m.GameType)
    </div>

    <div>
    @Html.LabelFor(m => m.Specialist)
    </div>
    <div>
    @Html.DropDownListFor(m => m.Specialist, Spec, new { @class = "wide" })
    @Html.ValidationMessageFor(m => m.Specialist)
    </div>

    <div>
    @Html.LabelFor(m => m.FavGun)
    </div>
    <div>
    @Html.TextBoxFor(m => m.FavGun, new { @class = "wide" })
    @Html.ValidationMessageFor(m => m.FavGun)
    </div>
    <p><input type="submit" class="button" value="Ok" /></p>
    </div>
}

在我的编辑控制器中向update语句添加断点时,我知道更新时主键Id=0为了解决此问题,我在视图中添加了隐藏字段,该字段已修复DbConcurrency on update

您能否将您的评论作为答案发布,以向其他读者显示问题已解决?你可以接受自己的答案。
public ActionResult CreateProfile()
        {
            if (db.Profiles.Any(u => u.Username == User.Identity.Name))
            {
                Profile pro = (from usr in db.Profiles where usr.Username == User.Identity.Name select usr).Single();
                olf = pro.UserImg;
                Profile p = db.Profiles.Find(pro.Id);
                ViewBag.ProfilePic = olf;
                return View(p);
            }
            else
            {
                ViewBag.Name = User.Identity.Name;
                return View();
            }
        }


   [HttpPost]
        public ActionResult CreateProfile(Profile m)
        {
            WebImage photo = WebImage.GetImageFromRequest();

            string newFileName = "";
            string thumbs = "";
            if (photo != null)
            {
                string ext = Path.GetExtension(photo.FileName);
                newFileName = User.Identity.Name+ ext;
                thumbs = @"Images/" + newFileName;
                photo.Resize(width: 120, height: 120, preserveAspectRatio: true, preventEnlarge: true);
                photo.Save(@"~/"+thumbs);
                m.UserImg = newFileName;
            }

            if (ModelState.IsValid)
            {    
                if (db.Profiles.Any(u => u.Username == User.Identity.Name))
                {   

                    db.Entry(m).State = System.Data.EntityState.Modified;
                    db.SaveChanges();
                    return RedirectToAction("Index");

                }
                else
                {
                    m.Username = User.Identity.Name;
                    db.Profiles.Add(m);
                    db.SaveChanges();
                    return RedirectToAction("Index");
                }
            }
            return View(m);
        }