Domanda

non riuscivo a trovare la risposta tra i numerosi messaggi su LINQ, quindi eccomi qui. Abbiamo un'applicazione client-server, dove il lato client non ha assolutamente nessuna conoscenza della DAL reale sul lato server, che incidentalmente è implementato utilizzando NHibernate. Che significa, non ci sono riferimenti a NHibernate dalle assemblee lato client, così come nessuna astrazione del database. lato client parla rigorosamente in termini di entità, che si basano su oggetti di business CSLA.

Vorrei lasciare che il lato client filtrare i soggetti esposti. La mia idea è quella di lasciare che il lato client costruire un'espressione LINQ, trasmette al lato server, recuperare i dati corrispondenti alla espressione utilizzando LINQ to NHibernate e restituirlo al client.

Ho scaricato e compilato LINQ to NHibernate, ma purtroppo non riesco a trovare un esempio che disaccoppia espressioni Linq (aka lato client) dal rispettivo istanza NHibernateContext (lato server aka). Tutti gli esempi sembrano essere come

from c in db.Customers where ...

vale a dire. sia il contesto (db.Customers) e l'espressione (dove ...) in un comunicato.

E 'possibile disaccoppiare loro? Grazie.

È stato utile?

Soluzione 2

Questa risulta essere piuttosto facile - from c in db.Customers where linq-exp select c è equivalente a db.Customers.Where(linq-exp)

.

Ho effettivamente bisogno di questo come parte di una più ampia questione - specifica un'espressione LINQ sul lato client e utilizzarlo per recuperare i dati sul lato server. Il mio post qui lo descrive in maggiori dettagli.

Altri suggerimenti

Date un'occhiata a questo post. Si potrebbe utilizzare questo concetto per passare parametri di query e quindi dinamicamente costruire la vostra richiesta.

query LINQ costruito in loop foreach assume sempre valore del parametro ultima iterazione

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top