J'essaie de déterminer quels enregistrements à supprimer d'une base de données lorsqu'un utilisateur soumet un formulaire. La page a deux CheckBoxList représentant les enregistrements avant modification et un après.LINQ jointure interne entre Enumerable et DB Table
je peux facilement obtenir les valeurs sélectionnées qui doivent être supprimés comme ça ...
//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;
maintenant je suis en train de faire quelque chose comme ça, mais il ne permet pas ... il
var itemsToDelete = from specialNeed in db.SpecialNeeds
join oldSelectedItem in oldSelectedItems on specialNeed.SpecialNeedsTypeCd equals oldSelectedItem.Value
where specialNeed.CustomerId == customerId
Je peux facilement utiliser une boucle foreach et un .DeleteOnSubmit() pour chaque élément mais je pense qu'il y a une façon d'utiliser la fonctionnalité de LINQ et passer le résultat de la requête entière d'une jointure interne à .DeleteAllOnSubmit()
//like so
db.SpecialNeeds.DeleteAllOnSubmit(itemsToDelete);
Des idées?
.Contains est exactement ce que je avais besoin! – ctrlShiftBryan