我有一个体育数据库,其中的表groupmembers具有字段ID,groupID和memberID。我从一个名为txtRemoveGroupMember的文本框中获取memberID,并从一个复选框列表中获取groupID。现在,我要删除同时具有groupID和memberID的行。我已经试过这段代码:
foreach(ListItem listItem in cblRemoveMemberFromGroup.Items) { int memberid = Convert.ToInt32(txtRemoveGroupMember.Text); int groupid = Convert.ToInt32(listItem.Value); var removeFromGroup = from gm in dataContext.GroupMembers where (gm.memberID == memberid) && (gm.groupID == groupid) select gm; dataContext.GroupMembers.DeleteOnSubmit(removeFromGroup); dataContext.SubmitChanges(); }
但是我得到这个错误:
错误7参数1:无法从’System.Linq.IQueryable ‘转换为’GSI_side.GroupMember’
而这个错误:
错误6最佳重载方法匹配为’System.Data.Linq.Table .DeleteOnSubmit(GSI_side.GroupMember)’有一些无效的参数
希望有人可以帮助我解决这个问题!
您必须致电.ToList()
var items = removeFromGroup.ToList(); foreach (var item in items) dataContext.GroupMembers.DeleteOnSubmit(item);
对于批量删除,我使用this,因为LINQ to SQL首先加载将要删除的整个数据,然后逐个删除每个数据。
https://terryaney.wordpress.com/2008/04/14/batch-updates-and-deletes-with- linq-to-sql/
https://github.com/longday/LINQ-to-SQL-Batch-Updates- Deletes