Bonjour,


J'ai un modèle de données tel que celui ci :

Un "Client" (Heritant de "GlobalEntity") a un de ses éléments qui contient une autre entité "ContactInfo", qui elle même contient une "Adresse".

trois relation 1-1 donc, rien exceptionnel.


Voici mon EntityDataSource

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
<asp:EntityDataSource ID="EntityDataSource1" runat="server" 
        ConnectionString="name=DataBaseContainer" 
        DefaultContainerName="DataBaseContainer" EntitySetName="GlobalEntitySet" 
        EntityTypeFilter="Client" Include="ContactInfo.Address">
    </asp:EntityDataSource>
Que j'affecte ainsi a mon data grid view :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
 
  <asp:GridView ID="GridView1" runat="server" DataSourceID="EntityDataSource1">
        <Columns>
            <asp:BoundField DataField="ContactInfo.LandLine" HeaderText="ContactInfo.LandLine" 
                SortExpression="ContactInfo.LandLine" />
        </Columns>
    </asp:GridView>
Comme vous le voyez, je veut donc afficher par exemple ici, l'attribut LandLine de mes contact info, qui est un String. Eh bien cela me lance une exception.

J'ai l'impression que malgré mon Include, ma datasource ne contient que les ID des différents èlèment demandés, et pas les valeurs des attributs.


Alors que avec :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
 using ( DataBaseContainer dc = new DataBaseContainer() )
        {
       return dc.GlobalEntitySet.OfType<Client>().Include("ContactInfo.Address").OrderBy("it.ContactInfo.Address.City").ToList<Client>();
        }
La ça fonctionne, mais je ne peut pas m'en servir de data source, ça me renvoi une List<Client>.


Des idées ? je commence a perdre des cheveux