2008-11-20 7 views
1

Est-il possible de vérifier dans Linq si un enregistrement d'un parent existe chez ses enfants?Dans Linq, vérifiez les relations enfants?

J'ai une table qui a une relation de clé étrangère avec 12 autres tables. Tout ce que je veux faire est de voir si les enregistrements de ces tables enfants dépendent du parent, donc je peux le supprimer sans causer d'erreurs avec les contraintes FK.

Merci les gars.

J'ai fini par faire juste une classe d'extension vérifié chacun ... du temps, mais a fait le travail ... Je voudrais tout de même avis si possible

Répondre

1

Vous pourriez force brute et envelopper la suppression dans un essai-catch. Tant que toutes les suppressions font partie du même contexte, si un enfant ne peut pas être supprimé en raison d'une relation FK, il annulera toutes les suppressions dans ce bloc.

0

Cela peut être un peu cludgy, et vous devrez faire une boucle à travers vos tables de l'enfant et l'union tous, mais voici un début ...

 ParentChildrenDataContext context = new ParentChildrenDataContext(); 

     var child1Ids = from c in context.ChildType1s 
         select c.ParentId; 

     var child2Ids = from c in context.ChildType2s 
         select c.ParentId; 


     var allChildren = child1Ids.Union(child2Ids); 

     var myParents = from p in context.Parents 
         where allChildren.Contains<int?>(p.ParentId) 
         select p; 

     return myParents.Count(); 
Questions connexes