Question

Vous avez essayé le nouvel outil de création de site Dynamic Data fourni avec .NET 3.5. L'outil utilise les sources de données LINQ pour extraire les données de la base de données à l'aide d'un fichier de contexte .dmbl comme référence. Je suis intimement lié à la personnalisation d'une grille de données, mais je dois afficher les données de plusieurs tables. Est-ce que quelqu'un sait comment faire cela en utilisant l'objet LINQ Datasource?

Était-ce utile?

La solution

Si les tables sont connectées par une clé étrangère, vous pouvez facilement référencer les deux tables car elles seront automatiquement reliées par linq (vous pouvez voir facilement si vous regardez dans votre dbml et qu'une flèche relie les tables) - si ce n'est pas le cas , voyez si vous pouvez en ajouter un.

Pour ce faire, vous pouvez simplement utiliser quelque chose comme ceci:

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

Où, dans la table, "unité" a une clé étrangère qui référence une autre table et vous extrayez la propriété de cette unité "nom_unité"

J'espère que cela a du sens.

Autres conseils

(EDIT a mal compris la question, révisant ma réponse au suivant)

Votre LinqDataSource peut pointer sur une vue, ce qui vous permet de surmonter le problème de l'impossibilité d'exprimer une jointure dans l'élément réel. " Comment: créer des classes LINQ to SQL mappées sur des tables et des vues (O / R Designer) " :

  

Le concepteur O / R est un mappeur relationnel d'objet simple car il ne prend en charge que les relations de mappage 1: 1. En d'autres termes, une classe d'entité ne peut avoir qu'une relation de mappage 1: 1 avec une table ou une vue de base de données. Le mappage complexe, tel que le mappage d'une classe d'entité sur plusieurs tables, n'est pas pris en charge. Cependant, vous pouvez mapper une classe d'entités sur une vue qui joint plusieurs tables liées.

Vous ne pouvez pas placer plus d'un objet / source de données sur une grille de données. Vous devrez créer un seul ConceptObject qui combine les propriétés exposées des entités de la pièce. Essayez d'utiliser DB - > Entités L2S - > ConceptObject. Vous devez être très artificiel si le modèle de base de données correspond au champ pour champ de ConceptObject.

Vous feriez mieux d’utiliser un ObjectDataSource lorsque vous voudrez faire un Linq plus complexe et lier votre grille à ObjectDataSource. Vous devez toutefois vous méfier des types anonymes qui pourraient vous causer des problèmes, mais tout est possible ...

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top