0

我正在使用 Entity Framework 5。我正在寻找一种更好的方法来更新多条记录。

人们在谈论EF 扩展。但我不确定如何在我的场景中使用它。

这是我的方法签名。

internal void Update( List<Models.StockItem> stockItemsUpdate)

我需要更新所有相应的stockitem实体。

using (var context = new  eCommerceEntities())
{
   var items = context.StockItems.Where(si => stockItemsUpdate.Select(it => it.ID).Contains(si.ID));
}

我相信上面的查询会返回这些实体。

在这种情况下如何使用 EF 扩展?

谢谢。

4

1 回答 1

0

EntityFramework.Extended'sBatchExtensions中有一个Update带有这个签名的扩展方法:

public static int Update<TEntity>(
        this IQueryable<TEntity> source,
        Expression<Func<TEntity, TEntity>> updateExpression)

您可以按如下方式使用它:

items.Update(item => new StockItem { Stock = 0 });

将所选项目的库存设置为 0。

于 2012-12-12T13:11:51.483 回答