如何将一个值插入(或更改)到多行MVC 5 EF

时间:2016-12-05 19:36:32

标签: c# asp.net-mvc entity-framework asp.net-mvc-5

大家晚上好, 这是我的问题: 例如,我有这样的模型:

[Table("Orders")]
public class Order
{
    [Key]
    public string Id { get; set; }
    public DateTime Generated { get; set; }
    public virtual ApplicationUser User { get; set; }
    public string UserId { get; set; }
    public string Content { get; set; }
}

我希望一次在多个已检查的订单中更改UserId和signle用户的ID。 默认情况下,所有UserId字段都为空。

public async Task<ActionResult> OrdersToChange(string[] orderIds)
    {

        //
        return View(orders);
    }
  1. 如何从数据库中获取选定的订单。
  2. 如何将所选用户分配给所选条目。 非常感谢。

2 个答案:

答案 0 :(得分:1)

您可以创建数据库上下文,然后使用Linq比较id以获取特定用户,还可以读取数据并将数据写入数据库。

Check out this link. It might be helpful.

答案 1 :(得分:1)

要在不加载实体的情况下更新具有相同值的多行,您需要一个批量更新库

请参阅:Entity Framework Batch Update Library

免责声明:我是该项目的所有者Entity Framework Plus

实施例

int currentUserId = 1;
var ctx = new MyContext();
ctx.Orders.Where(x => orderIds.Contains(x.Id))
          .Update(x => new Order { UserId = currentUserId });