Linq to Entity: posso accedere a un'altra tabella nel modello nella pagina MVC del modello elenco
-
08-07-2019 - |
Domanda
nella soluzione del modello di progetto (Dynamic Data Web Application), ho creato il modello e tutto va bene. - Ottieni l'elenco delle tabelle e la modifica modifica ecc.
Ma il mio database ha tabelle di collegamento che contengono solo chiavi forgien - quindi il modello di elenco mostra solo il valore fk
È possibile combinare l'elenco della riga nella tabella principale con un'ispezione di un'altra tabella basata su fk?
Più simile a un join in SQL? ma usando Linq2Entity e il MetaModel?
Di seguito è riportato List.aspx.cs - questo sembra associare la griglia standard a entitydatasource, ma questo è alla tabella corrente secondo il percorso nell'MVC.
Ma come puoi vedere, devo andare a interrogare la tabella Persona, Ruolo e Collegamento tramite il modello per ottenere gli altri campi in modo che ciò sia utile.
PS vuole provare a mantenerlo in LINQ2Entity, se possibile, cercando di grok
la cosa naturale che voglio fare è iniziare a scartare nuove query sql per andare a recuperare i valori. Ma questo non è in questo idioma.
Soluzione
puoi fare riferimento al metaModel tramite dataContext
MetaModel refMetaModel = MetaModel.GetModel(typeof(yourdataContextName));
MetaTable refMetaModel;
refMetaModel = refMetaModel.GetTable("yourTableName");
PS ha esaminato il tuo codice e questo funziona nel tuo scenario. Puoi ottenere le tabelle dal modello, quindi ispezionare i dati restituiti per ciascuna tabella nel modello
Altri suggerimenti
Utile da utilizzare anche dal modello Linq to Entities -
Usando dataContext - puoi ottenere i dati acutali più utili.
Il metaModel consente l'accesso al dataModel che fornisce le informazioni sul tipo di ddl sottostante
//use the datacontext to get the underlying data
using (brrdbEntities brr = new brr_dbEntities())
{
ObjectQuery<person> people = brr.person;
IQueryable<string> names = from p in people select p.person_name;
foreach (var name in names)