开发人员已经离开我们公司,并使用实体框架使我们背负了一堆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
重新显示。
数据根本不会保存-除非我通过调试在本地桌面上运行数据。
想法?