实体框架 - 使用 LINQ lambda 将单个列更新到 EF 6.0 ?MVC4.


我想

在输入时编辑数据表中的内容时保存数据。在输入控件时,转到控制器中实际执行更新的方法。

到目前为止我的代码:

public string UpdateData(int id, string value, int? rowId, int? columnPosition, int? columnId, string columnName)
{
     var Leadsinfo = ser_obj1.Lead_List();
     if (columnPosition == 0 && Leadsinfo.Any(c => c.Contact_Name.ToLower().Equals(value.ToLower())))
         return "Lead with a name '" + value + "' already exists";
     var Lead = Leadsinfo.FirstOrDefault(c => c.Lead_Id == id);
     if (Lead == null)
     {
         return "Lead with an id = " + id + " does not exists";
     }
     switch (columnPosition)
     {
         case 0:
             Lead.Contact_Name = value;
             iWise_NeoEntities ooo = new iWise_NeoEntities();
             break;
         case 1:
             Lead.Contact_Address = value;
             break;
         case 2:
             Lead.Lead_Source = value;
             break;
         case 3:
             Lead.Domain = value;
             break;
         default:
             break;
     }
     return value;
} 

在上面的代码中,我提到我需要编写逻辑,在任何列编辑时它应该保存到数据库。 我想使用lambda linq很容易,但是我什至不知道如何开始?我需要在每种情况下写入保存吗?

您可以在数据库中创建更新方法:

public void UpdateLead(Lead model)
{
    var entity = db.Set<Lead>().Find(model.Id);
    db.Entry<Lead>(entity).CurrentValues.SetValues(model);
    db.SaveChanges();
}

并在您需要的地方使用它:

switch (columnPosition)
{
     case 0:       Lead.Contact_Name = value;      break;
     case 1:       Lead.Contact_Address = value;   break;
     case 2:       Lead.Lead_Source = value;       break;
     case 3:       Lead.Domain = value;            break;
     default:                                      break;
}
iWise_NeoEntities ooo = new iWise_NeoEntities();
ooo.UpdateLead(Lead);

相关内容

  • 没有找到相关文章

最新更新