Bonjour à tous,

je précise je debute en silverght and co.

Mon problème est que je n'arrive pas à obtenir un element d'une table lié lors de la creation d'une grille par RIA services.

Je développe :

Voici ma bdd



J'ai ensuite crée son domaine service associé avec le fichier metadata


voici mes deux classes
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
 
Option Compare Binary
Option Infer On
Option Strict On
Option Explicit On
 
Imports SiteWeb
Imports System
Imports System.Collections.Generic
Imports System.ComponentModel
Imports System.ComponentModel.DataAnnotations
Imports System.Data.Objects.DataClasses
Imports System.Linq
Imports System.ServiceModel.DomainServices.Hosting
Imports System.ServiceModel.DomainServices.Server
 
 
'MetadataTypeAttribute identifie DEPARTEMENTMetadata comme la classe
' qui comporte des métadonnées supplémentaires pour la classe DEPARTEMENT.
<MetadataTypeAttribute(GetType(DEPARTEMENT.DEPARTEMENTMetadata))>  _
Partial Public Class DEPARTEMENT
 
    'Cette classe vous permet d'attacher des attributs personnalisés aux propriétés 
    ' de la classe DEPARTEMENT.
    '
    'Par exemple, le code suivant marque la propriété Xyz en tant que
    ' propriété requise et spécifie le format pour les valeurs valides*:
    '    <Required()>
    '    <RegularExpression("[A-Z][A-Za-z0-9]*")>
    '    <StringLength(32)>
    '    Public Property Xyz As String
    Friend NotInheritable Class DEPARTEMENTMetadata
 
        'Les classes de métadonnées ne sont pas conçues pour être instanciées.
        Private Sub New()
            MyBase.New
        End Sub
 
        Public Property CODE As String
 
        Public Property ID As Integer
 
        Public Property NAME As String
 
        Public Property REGION As REGION
 
        Public Property REGION_ID As Integer
    End Class
End Class
 
'MetadataTypeAttribute identifie REGIONMetadata comme la classe
' qui comporte des métadonnées supplémentaires pour la classe REGION.
<MetadataTypeAttribute(GetType(REGION.REGIONMetadata))>  _
Partial Public Class REGION
 
    'Cette classe vous permet d'attacher des attributs personnalisés aux propriétés 
    ' de la classe REGION.
    '
    'Par exemple, le code suivant marque la propriété Xyz en tant que
    ' propriété requise et spécifie le format pour les valeurs valides*:
    '    <Required()>
    '    <RegularExpression("[A-Z][A-Za-z0-9]*")>
    '    <StringLength(32)>
    '    Public Property Xyz As String
    Friend NotInheritable Class REGIONMetadata
 
        'Les classes de métadonnées ne sont pas conçues pour être instanciées.
        Private Sub New()
            MyBase.New
        End Sub
 
        <Include()>
        Public Property DEPARTEMENT As EntityCollection(Of DEPARTEMENT)
 
        Public Property ID As Integer
 
        Public Property NAME As String
    End Class
End Class

J'ai ensuite fait un drag and drop d'un élément de ma source de donnée (DEPARTEMENT) qui m'a crée automatiquement une grille

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 <sdk:DataGrid AutoGenerateColumns="False" Grid.Row="1" Height="200" HorizontalAlignment="Left" ItemsSource="{Binding ElementName=DEPARTEMENTDomainDataSource, Path=Data}" Margin="0,15,0,0" Name="DEPARTEMENTDataGrid" RowDetailsVisibilityMode="VisibleWhenSelected" VerticalAlignment="Top" Width="400">
            <sdk:DataGrid.Columns>
                <sdk:DataGridTextColumn x:Name="CODEColumn" Binding="{Binding Path=CODE}" Header="Code Postal" Width="SizeToHeader" />
                <sdk:DataGridTextColumn x:Name="IDColumn" Binding="{Binding Path=ID, Mode=OneWay}" Visibility="Collapsed" Header="ID" IsReadOnly="True" Width="SizeToHeader" />
                <sdk:DataGridTextColumn x:Name="NAMEColumn" Binding="{Binding Path=NAME}" Header="Nom" Width="Auto" />
                <sdk:DataGridTextColumn x:Name="REGION_IDColumn" Binding="{Binding Path=REGION_ID}" Visibility="Collapsed" Header="REGION ID" Width="SizeToHeader" />
            </sdk:DataGrid.Columns>
        </sdk:DataGrid>

J'ai beau avoir mis include dans la classe j'ai soit seulement l'id de la region de visible et non son nom ou bien si je drag and drop l'element region j'ai bien une grille de l'ensemble des regions mais du coup il affiche l'ensemble des departements sous forme d'objet

Pourtant j'ai bien modifier la requete d'insertion en ajoutant un include

Public Function GetREGION() As IQueryable(Of REGION)
Return Me.ObjectContext.REGION.Include("DEPARTEMENT")
End Function