Sto facendo Dynamic Linq basato su stringa e ho bisogno di applicare una clausola where nidificata.
La risposta qui mi porta a metà strada. Tuttavia, le colonne in due tabelle hanno ID corrispondenti. Devo poter fare riferimento tramite un alias o altro, come di seguito:
rolesCollection
.Where("AssignedUsers.Where(AssignedUsers.TypId == rolesCollection.TypId).Any()");
Qualche idea su come realizzare questo? Non ho la possibilità di passare un oggetto, questa deve essere puramente una soluzione basata su stringhe nel contesto di un metodo di ricerca API generico. Questo è solo un esempio di ciò di cui ho bisogno ... Non ho la possibilità di aderire o altro tramite codice. Sto cercando la soluzione nella parte basata su stringhe del codice di esempio.
L'oggetto AssignedUsers dovrebbe, in questo esempio teorico, avere una raccolta AssignedUsers_Typ e puoi semplicemente fare riferimento di seguito, senza dover fare riferimento alle colonne Typ di entrambe le tabelle.
rolesCollection.Where("AssignedUsers_Typ.Any()");
Sono stato in grado di risolvere il mio problema utilizzando questa soluzione.
Vuoi qualcosa del genere;
rolesCollection = rolesCollection.Where(x => assignedUsers.Any(t => t.TypId == x.TypId)).ToList();