2017-06-29 64 views
1

直到現在我被寫入刪除單行:刪除LINQ C#多行

Role role = new Role(); 
role = context.Roles.SingleOfDefault(p => p.Rolename == rolename); 
context.Roles.DeleteOnSubmit(role); 
context.SubmitChanges(); 

現在我需要從角色權限表中刪除所有權限規則,他有,所以我想用特定的RoleId從RolePermission表中刪除多行(RolePermission表包含RoleId列)。有沒有類似的方式來做到這一點?

+0

[linq to sql batch delete]可能重複(https://stackoverflow.com/questions/654561/linq-to-sql-batch -delete) – Random

+0

爲什麼你要實例化一個新的'Role'然後重新賦值? – Enigmativity

回答

3

你有DeleteAllOnSubmit方法:

context.RolePermission.DeleteAllOnSubmit(
      context.RolePermission .Where(p=> p.RoleId == role.RoleId)); 
+0

首先,看起來這個查詢會從Role表中刪除多個列,我想使用roleid從RolePermission表中刪除多行。 其次,我試過這個命令,但不幸的是,它不起作用。 謝謝你的幫助! –

+0

@ L.Achilles固定錯字。 – user3185569

+0

@ L.Achilles在你之後是否調用過保存更改? – user3185569