使用实体框架更新对象数组

时间:2017-02-01 16:51:43

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

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

这是控制器

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

    return response;
}

这是Model类

    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}]

3 个答案:

答案 0 :(得分:2)

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

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

db.SaveChnages();

有关详细信息,请查看https://msdn.microsoft.com/en-us/data/jj592676.aspx

答案 1 :(得分:1)

 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,它将执行update else else

欢呼声

答案 2 :(得分:1)