Я пытаюсь определить, какие записи удалять из базы данных, когда пользователь отправляет форму. На странице есть два элемента CheckBoxList, представляющие записи перед изменением и один за другим.LINQ внутреннее соединение betwenn Перечислимое и таблица DB
я могу легко получить выбранные значения, которые должны быть удалены, как это ...
//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
я легко могу просто использовать цикл Еогеасп и .DeleteOnSubmit() для каждого элемента, но я думаю, что есть способ использовать функциональные возможности LINQ и передать весь результат запроса на внутреннее соединение с .DeleteAllOnSubmit()
//like so
db.SpecialNeeds.DeleteAllOnSubmit(itemsToDelete);
Любые идеи?
.Contains это именно то, что мне нужно! – ctrlShiftBryan 2008-10-08 15:56:42