使用DbUpdateConcurrencyException使用Entity Framework 5错误更新记录

NER1808

我似乎发疯了,没有在MVC 3实体框架项目中获得更新的简单记录。我想念什么?

我可以很好地创建记录,但是似乎无法弄清楚执行更新的逻辑。我尝试了各种方法(附加,不附加),并认为当涉及到外键或其他东西时,我错过了一种模式。

视图返回的对象已完全填充,并且模型有效。填充外键ID字段。

有什么想法请。

POCO是

public class EFormApplication
{
    [Key]
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int ApplicationId { get; set; }
    [ForeignKey("ApplicationTemplateId")]
    public virtual ApplicationTemplate ApplicationTemplate { get; set; }
    public int ApplicationTemplateId { get; set; }
    [Required(ErrorMessage = "Each application must have a Title")]
    public string Title { get; set; }
    [Required(ErrorMessage = "Each application must have a Description. This is visible to the clients")]
    public string Description { get; set; }
    [ForeignKey("SecurityId")]
    public virtual Security Security { get; set; }
    public int SecurityId { get; set; }
    public bool Published { get; set; }
    [Display(Name = "EIDV Required")]
    public bool EIDVRequired { get; set; }
    [Display(Name = "Investor confirmation required")]
    public bool InvestorConfirmationRequired { get; set; }
    [Display(Name = "Advisor confirmation required")]
    public bool AdvisorConfirmationRequired { get; set; }
    [Display(Name = "Payment required")]
    public bool PaymentRequired { get; set; }
    [Display(Name = "Login Required")]
    public bool UserLoginRequired { get; set; }
    [Display(Name = "ISA Trans allowed")]
    public bool IsaTransfersAllowed { get; set; }
    public DateTime? Deadline { get; set; }
    [Display(Name = "Fully Subscribed")]
    public bool FullySubscribed { get; set; }
    [Display(Name = "Image Url")]
    [RegularExpression(@"^(ht)tp(s?):\/\/[0-9a-zA-Z].+$", ErrorMessage = "You must enter a valid URI including the http:// or https://")]
    public string ImageUrl { get; set; }
    [Display(Name = "Information Url")]
    [RegularExpression(@"^(ht)tp(s?):\/\/[0-9a-zA-Z].+$", ErrorMessage = "You must enter a valid URI including the http:// or https://")]
    public string InformationUrl { get; set; }
    public bool Discontinued { get; set; }
    public DateTime Created { get; set; }
    public string CreatedBy { get; set; }
    public DateTime LastUpdated { get; set; }
    public string LastUpdatedBy { get; set; }

    //navigation
    public virtual ICollection<ApplicationSubmission> ApplicationSubmissions { get; set; }
}

编辑控制器方法是

    [Authorize(Roles = "Admins")]
    public ActionResult Edit(int applicationId)
    {
        EFormApplication eformapplication = _formRepository.GetEFormApplication(applicationId);
        return View(eformapplication);
    }


    [Authorize(Roles = "Admins")]
    [HttpPost]
    public ActionResult Edit(EFormApplication eformapplication)
    {
        if (ModelState.IsValid)
        {
            eformapplication.LastUpdated = DateTime.UtcNow;
            eformapplication.LastUpdatedBy = User.Identity.Name;

            var opstatus = _formRepository.UpdateEFormApplication(eformapplication);

            if (opstatus.Status)
            {
                return RedirectToAction("Design", "eForm");
            }
            else
            {
                return RedirectToAction("OpStatusError", "Error", opstatus);
            }
        }

        return View(eformapplication);
    }

保存记录的位的存储库方法UpdateEFormApplication如下:

    public OperationStatus UpdateEFormApplication(EFormApplication eFormApplication)
    {
        DataContext.Entry(eFormApplication).State = EntityState.Modified;
        DataContext.SaveChanges();

        return Save(eFormApplication);
    }
NER1808

当我写这个问题并检查事实时,我发现我犯了一个非常简单的错误!

我忘记了在编辑页面上包含ID字段,因此在发布的模型中将其设置为零!

教训是...确保所有字段都显示在表单上,​​如果您不希望显示它,则将其作为隐藏字段!

谢谢您的帮助Stack Overflow ;-)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用Entity Framework 5错误和DbUpdateConcurrencyException更新记录

来自分类Dev

使用Entity FrameWork 7更新记录

来自分类Dev

使用Entity Framework更新记录,而无需先加载

来自分类Dev

如何使用Entity Framework 7记录查询?

来自分类Dev

使用Entity Framework 5更新数据库字段

来自分类Dev

使用Entity Framework更新行时发生异常

来自分类Dev

使用“迁移”的Entity Framework 6.0.2中的错误

来自分类Dev

在Entity Framework 6中使用存储库模式更新记录

来自分类Dev

如何使用Entity Framework更新特定记录的一个字段?

来自分类Dev

在C#中使用带有Entity Framework的类对象更新记录

来自分类Dev

使用外键从表中删除记录时,Entity Framework出现错误

来自分类Dev

如何使用Entity Framework ASP.Net MVC 5删除多个记录?

来自分类Dev

保存记录之前,如何使用Entity Framework(v5)获取标识值

来自分类Dev

使用Entity Framework Extended的Entity Framework 6批处理更新和AuditLog

来自分类Dev

如何使用Entity Framework 6更新多对多关系?

来自分类Dev

使用ViewModel和Entity Framework 6更新实体吗?

来自分类Dev

在Entity Framework中使用相关实体更新分离的实体

来自分类Dev

无法使用Entity Framework Core 3.1.3更新数据库

来自分类Dev

无法使用Entity Framework Core更新数据库

来自分类Dev

首先使用代码在Entity Framework Timestamp中查找更新的条目

来自分类Dev

使用Entity Framework生成的错误选择查询(神秘的额外列)

来自分类Dev

使用SQLite和Entity Framework 6时导航属性错误

来自分类Dev

使用MVC 5和Entity Framework 6进行挣扎

来自分类Dev

使用Entity Framework功能删除记录与直接使用DELETE stmt删除记录

来自分类Dev

在Entity Framework 6中的foreach循环中更新记录

来自分类Dev

在Entity Framework中以多对多关系更新记录

来自分类Dev

从PostgreSQL返回更新到Telerik Entity Framework的记录数

来自分类Dev

更新记录时ASP.NET排除属性-Entity Framework

来自分类Dev

插入后在Entity Framework 5中获取记录ID

Related 相关文章

  1. 1

    使用Entity Framework 5错误和DbUpdateConcurrencyException更新记录

  2. 2

    使用Entity FrameWork 7更新记录

  3. 3

    使用Entity Framework更新记录,而无需先加载

  4. 4

    如何使用Entity Framework 7记录查询?

  5. 5

    使用Entity Framework 5更新数据库字段

  6. 6

    使用Entity Framework更新行时发生异常

  7. 7

    使用“迁移”的Entity Framework 6.0.2中的错误

  8. 8

    在Entity Framework 6中使用存储库模式更新记录

  9. 9

    如何使用Entity Framework更新特定记录的一个字段?

  10. 10

    在C#中使用带有Entity Framework的类对象更新记录

  11. 11

    使用外键从表中删除记录时,Entity Framework出现错误

  12. 12

    如何使用Entity Framework ASP.Net MVC 5删除多个记录?

  13. 13

    保存记录之前,如何使用Entity Framework(v5)获取标识值

  14. 14

    使用Entity Framework Extended的Entity Framework 6批处理更新和AuditLog

  15. 15

    如何使用Entity Framework 6更新多对多关系?

  16. 16

    使用ViewModel和Entity Framework 6更新实体吗?

  17. 17

    在Entity Framework中使用相关实体更新分离的实体

  18. 18

    无法使用Entity Framework Core 3.1.3更新数据库

  19. 19

    无法使用Entity Framework Core更新数据库

  20. 20

    首先使用代码在Entity Framework Timestamp中查找更新的条目

  21. 21

    使用Entity Framework生成的错误选择查询(神秘的额外列)

  22. 22

    使用SQLite和Entity Framework 6时导航属性错误

  23. 23

    使用MVC 5和Entity Framework 6进行挣扎

  24. 24

    使用Entity Framework功能删除记录与直接使用DELETE stmt删除记录

  25. 25

    在Entity Framework 6中的foreach循环中更新记录

  26. 26

    在Entity Framework中以多对多关系更新记录

  27. 27

    从PostgreSQL返回更新到Telerik Entity Framework的记录数

  28. 28

    更新记录时ASP.NET排除属性-Entity Framework

  29. 29

    插入后在Entity Framework 5中获取记录ID

热门标签

归档