4
這樣的代碼:EF:避免多次更新語句
var compIds = from p in packinglist.List
select p.ComponentId;
var components = from c in context.Components
where compIds.Contains(c.Id)
select c;
foreach (var item in components)
{
item.CurrentSiteId = packinglist.DestinationId;
}
context.SaveChanges();
最終發行大量的SQL語句像
update [dbo].[Components] set [CurrentSiteId] = @0 where ([Id] = @1)
有沒有一種方法來指示EF(代碼優先)發出以下聲明:
update [dbo].[Components] set [CurrentSiteId] = @0 where ([Id] in (....))
或者我應該考慮使用可用的SQLQuery方法之一或單獨的工具li小巧或大量或...?
我對這個答案也很感興趣,但是根據我對EF的經驗,這看起來像是一個SQL查詢或存儲過程(您可以導入到EF中)的候選人。 – Tridus
@Tridus:你應該將它作爲答案發布,因爲沒有其他方式,那麼直接使用SQL即可。 –