我试图确定当用户提交表单时要从数据库中删除哪些记录。该页面有两个CheckBoxList,一个代表修改前的记录,一个代表修改后的记录。
我可以像这样轻松获取需要删除的选定值...
//get the items not selected that were selected before
var oldSelectedItems = from oItem in oldChklSpecialNeeds.Items.Cast<ListItem>()
where !(from nItem in newChklSpecialNeeds.Items.Cast<ListItem>()
where nItem.Selected
select nItem.Value).Contains(oItem.Value)
&& oItem.Selected
select oItem.Value;
现在我正在尝试做这样的事情,但它不允许......
var itemsToDelete = from specialNeed in db.SpecialNeeds
join oldSelectedItem in oldSelectedItems on specialNeed.SpecialNeedsTypeCd equals oldSelectedItem.Value
where specialNeed.CustomerId == customerId
我可以轻松地为每个项目使用 foreach 循环和 .DeleteOnSubmit() 但我认为有一种方法可以使用 LINQ 的功能并将内部连接的整个查询结果传递给 .DeleteAllOnSubmit()
//like so
db.SpecialNeeds.DeleteAllOnSubmit(itemsToDelete);
有任何想法吗?