我有2 Linq2Sql類:Parent
和Child
。我想要做一些事情,比如爲父母刪除所有的孩子,或者更新所有的孩子記錄。在SQL我會寫:如何在Linq中運行批量更新/刪除查詢?
delete Child where ParentID = @p
或
update Child set Val = Val+1 where ParentID = @p
我可以Parent
類中做到這一點Linq中的蠻力方式:
Children.ToList().ForEach(c => c.DeleteOnSubmit()); // DeleteOnSubmit is my own method
和
Children.ToList().ForEach(c => c.Val++);
但是,給予李nq在ForEach循環中固有的性能損失,這似乎是一種非常低效的做事方式。是否有某種方法可以實現想要的結果,並且只會觸發一個查詢?
+1哇,這是一個很棒的鏈接!我正在改變主意,回答信用... –
是的,特里阿尼的解決方案的岩石!回信給你! –
@Shaul現在這可能是一個很好的答案,但只有鏈接的答案有這個問題,遲早他們會變得毫無價值,因爲外部資源無法再到達。在這裏寫下至少一部分解決方案總是會更好,所以只要它活着就可以使用。 – jahu