上下文未保存数据,否则将删除数据

时间:2019-10-30 19:07:29

标签: c# entity-framework

开发人员已经离开我们公司,并使用实体框架使我们背负了一堆C#代码。我不是C#专家,并且从未使用过实体框架。所以-从烟丝尽头喝酒。

我有一段代码无法保存更改,这是一个问题。至少不在Web服务器的生产或测试环境中。在调试中运行代码将每次都保存数据。对于从网站运行时无法正常运行的同一测试数据库(其他数据输入表单正在保存到数据库中,只是这似乎是一个问题)。

我已经进行了研究,但很多建议似乎源于Entity Framework,因为他们没有意识到数据“实际上”已更改。因此,我添加了一行代码来尝试将EntityState设置为Added以强制使用它-仍然不是很开心。

public partial class xDBContext : DbContext
{
     public xDBContext() : base("PromiseConnectionString")
     {
     }

}    
...    

public partial class xPromise_AllPrograms
{
    [Key]
    public int PrimID { get; set; }

    public int FormId { get; set; }

    [StringLength(100)]
    public string Degree_Text { get; set; }
}

...

public ActionResult AddDegree(int formId, string degree)
{
   using (xDBContext context = new xDBContext())
   {
      var program = new x_AllPrograms()
      {
          FormId = formId,
          Degree_Text = degree
      };

      context.Promise_AllPrograms.Add(program);
      context.Entry(program).State = System.Data.Entity.EntityState.Added;
      context.SaveChanges();
   }

   return PartialView("_ViewPrograms", GetPrograms(formId));
}

显然,任何添加的Degree_Text应该保存到结果表中,并通过GetPrograms重新显示。

数据根本不会保存-除非我通过调试在本地桌面上运行数据。

想法?

0 个答案:

没有答案