ユーザーがフォームを送信したときにデータベースから削除するレコードを決定しようとしています。このページには、変更前と変更後のレコードを表す 2 つの 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);
何か案は?