Domanda

Ho provato il nuovo strumento di creazione di siti Dynamic Data fornito con .NET 3.5.Lo strumento utilizza LINQ Datasources per ottenere i dati dal database utilizzando un file di contesto .dmbl come riferimento.Sono interessato a personalizzare una griglia di dati ma ho bisogno di mostrare i dati da più di una tabella.Qualcuno sa come farlo utilizzando l'oggetto LINQ Datasource?

È stato utile?

Soluzione

Se le tabelle sono collegate da una chiave esterna, puoi facilmente fare riferimento a entrambe le tabelle poiché verranno unite automaticamente da linq (puoi vederlo facilmente se guardi nel tuo dbml e c'è una freccia che collega le tabelle) - in caso contrario, vedi se puoi aggiungerne uno.

Per fare ciò, puoi semplicemente usare qualcosa del genere:

<%# Bind("unit1.unit_name") %>

Dove nella tabella "unità" ha una chiave esterna che fa riferimento a un'altra tabella e si estrae la proprietà "unità" di "nome_unità"

Spero che abbia un senso.

Altri suggerimenti

(EDIT ha frainteso la domanda, rivedendo la mia risposta a quanto segue)

Il tuo LinqDataSource potrebbe puntare a una vista, che ti consente di superare il problema di non essere in grado di esprimere un Join nell'elemento reale.Da "Come:Crea classi LINQ to SQL mappate su tabelle e viste (O/R Designer)":

O/R Designer è un semplice mappatore relazionale di oggetti perché supporta solo relazioni di mappatura 1:1.In altre parole, una classe di entità può avere solo una relazione di mappatura 1:1 con una tabella o vista del database.La mappatura complessa, come la mappatura di una classe di entità su più tabelle, non è supportata.Tuttavia, puoi associare una classe di entità a una vista che unisce più tabelle correlate.

Non è possibile inserire più di un oggetto/origine dati su una griglia dati.Dovrai costruire un singolo ConceptObject che combini le proprietà esposte delle Entità della parte.Prova a utilizzare DB -> Entità L2S -> ConceptObject.Devi essere molto ingegnoso se il modello DB corrisponde al campo ConceptObject.

È meglio utilizzare un ObjectDataSource quando vuoi eseguire Linq più complesso e associare la tua griglia a ObjectDataSource.Bisogna però fare attenzione ai tipi anonimi che potrebbero darvi qualche problema, ma tutto è possibile...

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