2008-11-19 11 views
0

dans la sortie de la solution de modèle de projet (Dynamic Web Application Web), j'ai créé le modèle et tout est bon. - Obtenir la liste des tables, et l'édition de sélection, etc.Linq to Entity - puis-je accéder à une autre table dans le modèle lorsque dans le modèle de liste MVC page

Mais ma base de données a reliant les tables qui contiennent seulement les clés forgien - de sorte que le modèle de liste affiche seulement la valeur de fk

diagram of the table

est-il loin de combiner la liste de la ligne dans la table primaire avec une inspection d'une autre table basée sur le fk?

Plus proche d'une jointure dans SQL? mais en utilisant Linq2Entity et le MetaModel? Ci-dessous se trouve le fichier List.aspx.cs - il semble que la grille standard soit liée à la ressource entitydatasource, mais cette table correspond à la table en cours, conformément à l'itinéraire du MVC.

Mais comme vous pouvez le voir, je dois aller interroger la table Personne, Rôle et Lien via le modèle pour obtenir les autres champs afin que cela soit utile. vstudio

PS veulent essayer de garder cela à l'LINQ2Entity si possible -trying à Grok

la chose naturelle que je veux faire est de commencer à essaimer de nouvelles requêtes SQL pour aller retrive les valeurs. Mais ce n'est pas dans cette idiome.

Répondre

1

vous pouvez référencer métamodèle via le DataContext

MetaModel refMetaModel = MetaModel.GetModel(typeof(yourdataContextName)); 
MetaTable refMetaModel; 
refMetaModel = refMetaModel.GetTable("yourTableName"); 

PS regarda votre code et cela fonctionne dans votre sceanrio. Vous pouvez obtenir les tableaux du modèle en inspectant les données renvoyées pour chaque table dans le modèle

MSDN article on the MetaModel

0

Uselful utiliser ce aussi bien du Linq aux entités modèle -

Utilisation du DataContext - vous peut obtenir les données acutales les plus utiles.

métamodèle permet d'accéder au dataModel qui vous donne les informations de type ddl sous-jacente

//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)