2013-10-09 96 views
4

我想使用批量更新使用实体框架扩展,但我不确定如何做到这一点。批量更新使用EntityFramework.Extended

到目前为止,这下面的代码,我有:

List<Guid> listIds = new List<Guid>(); 


listIds = listIds.Union(hem.ProductList.Where(x => x.CustListID == custListID).ToList().Select(y => y.OrderListID)).ToList(); 

与上面的查询它返回1000名起订名单。

所以我想实现: 更新,其中OrderListID以上

listIds现在我使用实体框架扩展尝试custListID。

using (var db = new DBContextEntities()) 
{ 
    var rowUpdates = db.ProductList.Update(x => x.OrderListID in listIds, x => new ProductList { CustListID = custListID}); 
} 

请告诉我如何才能做到这一点。

+0

x => listIds中的x.OrderListID是不正确的语法。有没有办法做到这一点? 。 'in'是不正确的语法 – Supermode

回答

6

您正在寻找这样的语法:

db.ProductList.Update(x => listIds.Contains(x.OrderListID), 
          x => new ProductList { CustListID = custListID }); 

Contains被转换成SQL语句IN