【问题标题】:Update Array of Objects with Entity Framework使用实体框架更新对象数组
【发布时间】:2017-02-01 16:51:43
【问题描述】:

我通过 ajax 将一个对象数组从网页发送到 C#。我正在尝试使用对象数组更新我的表请帮助。

这是控制器

public HttpResponseMessage Update([FromBody]List<Model> json)
{
    var result = db.Models.ToList();

    return response;
}

这是模型类

    public int ID {get; set;}

    public string ModelNumber { get; set; }

    public string Category { get; set; }

    public string PartNumber { get; set; }

这里是一个json数组的示例

var json = [{ID:1,ModelNumber: gw234, Category: A, Partnumber: rty466m},{ID:2,ModelNumber: kw274, Category: B, Partnumber: tbg55},{ID:3,ModelNumber: gr456, Category: A, Partnumber: htg555}]

【问题讨论】:

    标签: c# json entity-framework asp.net-web-api asp.net-web-api2


    【解决方案1】:

    假设对象数组是Entity(Model)类型,你可以将实体状态设置为修改

    json.ForEach(m=> db.Entry(m).State = EntityState.Modified);
    
    db.SaveChnages();
    

    欲了解更多信息,请查看https://msdn.microsoft.com/en-us/data/jj592676.aspx

    【解决方案2】:
     using System.Data.Entity.Migrations;  
    
     public HttpResponseMessage Update([FromBody]List<Model> json)
        {
            var result = db.Models.ToList();
    
            // create object from dbContext
            var db = new MyDbContext();
    
            // add entities on dbContext,
            db.SomeRepo.AddOrUpdate(json); 
            // commit the change on db
            db.Save();  
    
            return response;
        }
    

    AddOrUpdate方法在使用System.Data.Entity.Migrations下; 如果实体有id,它将执行更新否则添加

    干杯

    【讨论】:

      【解决方案3】:
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-10
      相关资源
      最近更新 更多