2009-09-30 7 views
0

J'ai une table qui a deux champs, userid et degreeid. Un utilisateur peut avoir plusieurs degrés dans cette table. Lorsqu'un utilisateur sélectionne son diplôme, je veux supprimer tout identifiant de diplôme déjà dans la base de données mais non sélectionné par l'utilisateur. Comment devrait-il le faire? J'essaie d'utiliser quelque chose comme ça sans aucune chance.Subsonic Supprime plusieurs enregistrements

repo.DeleteMany (x => x.MeetingAttendeeUserID == userID & & x.EducationDegreeID userDegreeList)

Merci, Lewis

Répondre

1

Pouvez-vous faire quelque chose comme ça?

repo.DeleteMany(x => 
    x.MeetingAttendeeUserId == userID && 
    x.EducationDegreeID != selectedDegreeId 
); 

Édition: Ou ce.

repo.DeleteMany(x => 
    x.MeetingAttendeeUserId == userID && 
    userDegreeList.Contains(x.EducationDegreeID)) 
); 
+0

Merci. Je vais essayer. – Lewis

+0

Je sais que ça fait longtemps, mais est-ce que ça a déjà marché pour vous? – Stephen

0

J'ai essayé

SubSonicRepository<ReportDatum> repo = new SubSonicRepository<ReportDatum>(db); 
repo.DeleteMany(x => x.ReportID == Convert.ToInt32(reportID)); 

et il ne fait rien, même pas une erreur.

Addendum pour quelqu'un qui rencontre ceci: ne pas convertir dans l'appel de suppression, convertir vos variables au préalable.

int deleteKey = Convert.ToInt32(reportID) 
SubSonicRepository<ReportDatum> repo = new SubSonicRepository<ReportDatum>(db); 
repo.DeleteMany(x => x.ReportID == deleteKey); 

et il a bien tiré.

0

Je recommanderais si vous ne connaissez pas l'expression de Lamda. Créez votre propre procédure stockée et appelez l'utiliser.

Cela ne vous limitera pas en utilisant l'expression lamda si vous n'avez pas le temps de l'apprendre.

En fin de compte, vous vouliez faire votre travail.

Questions connexes