实体框架。刚向DB添加了一个新字段,新字段未从代码中保存

时间:2014-09-10 17:16:10

标签: c# asp.net entity-framework webforms

我刚刚在一张桌子上添加了一个新字段(“Leads”)

保存和检索除我直接添加到数据库的新字段以外的所有字段的工作正常。我正在为新领域和其他领域做同样的事情

objLead = new Leads();

objLead.PhoneNumber = txtPhoneNumber.Text; //this one works
objLead.MobilePhone = txtMobilePhone.Text; //this one doesn't

Leads ins = LeadsManager.Save(objLead);

我的保存功能是..

    public static Leads Save(Leads objLead) {
        if (objLead.LeadId == 0) {

            //objLead.InsertBy = Convert.ToInt32(HttpContext.Current.User.Identity.Name);
            objLead.InsertDate = DateTime.Now;
            objLead.InsertMachineInfo = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"].ToString();
            DbContextHelper.DbContext.Add(objLead);
        }

        //secUser.UpdatedBy = Convert.ToInt32(HttpContext.Current.User.Identity.Name);
        objLead.UpdateMachineInfo = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"].ToString();
        objLead.UpdateDate = DateTime.Now;
        DbContextHelper.DbContext.SaveChanges();

        return objLead;
    }

我对EF很新,所以我不确定我是否遗漏了什么......当我把objLead.mobilePhone放进去的时候,我去了Leads课程并添加了新属性所以智能感知识别...我只是不确定为什么它没有保存到DB ..感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

将列添加到物理数据库表后,请执行以下步骤:

  1. 进入你的模特(.edmx)
  2. 右键单击设计区域
  3. 从数据库更新模型......
  4. 单击出现的对话框中的刷新选项卡
  5. 完成
  6. 这应该更新您之前使用添加的新列自动生成的poco类。如果您遇到我认为您遇到的问题,解决您的问题。

    请注意,以这种方式重新生成POCO将删除您手动更改的任何更改(如果有)。

    编辑:

    我不确定这是否真的有效,但你可以尝试一下。如果直接进入创建的POCO类并使用正确的数据类型添加新属性,那可能会有效。

    通过从解决方案资源管理器扩展您的.edmx文件,然后[modelName] .tt找到您的POCO类,然后选择您的[tableName] .cs。

    如果您在表格中添加了一个字符串,则可以添加:

    public string NewColumnName { get; set; }
    

    我再也不知道这条路线是否真的有效,根据数据库刷新你的模型是最好的选择。