2011-02-02 4 views
0

Dans mon projet, j'ai créé un modèle de données d'entité, avec des liens de relation entre les différentes tables. Je remarque quand je le fais, Visual Studio crée automatiquement une propriété nommée après ce lien. J'ai ensuite généré une classe de service de domaine basée sur ce modèle de données, et là encore une propriété est générée représentant le lien, ie dans ma classe ChemicalApplication il y a une propriété chimique de type chimique. Le problème est que, dans le client Silverlight, je peux accéder à l'objet de données ChemicalApplication sans problème, et peut voir la propriété ChemicalApplication.Chemical, mais dès que j'essaye d'y accéder, je reçois une erreur que la propriété est non initialisé.Les propriétés enfant ne sont pas automatiquement initialisées avec RIA?

Ces propriétés enfants générées automatiquement ne sont-elles pas automatiquement initialisées? Si non, comment leur attribuer manuellement une valeur dans le service de domaine RIA?

+0

Pourrions-nous voir votre code d'accès? Votre requête de lien ou autre qui renvoie l'entité ChemicalApplication. – DaveB

Répondre

0

J'ai réussi à trouver comment faire cela manuellement. Au sein de RIA Dataservice méthode get(), ajoutez simplement ".include ("nom_table")"

Par exemple, dans ma fonction GetChemicalApplicationByUser Je lie à deux tables sous:

Public Function GetChemicalApplicationsByUser(ByVal query As String) As IQueryable(Of ChemicalApplication) 
    Return Me.ObjectContext.ChemicalApplications.Include("Chemical") _ 
               .Include("ProcessStatus") _ 
               .Where(Function(f) f.requestedByUsername = query) 
End Function 

dans les métadonnées de classe, vous aurez également besoin d'ajouter Include() ie:

<MetadataTypeAttribute(GetType(ChemicalApplication.ChemicalApplicationMetadata))> _ 
Partial Public Class ChemicalApplication 


Friend NotInheritable Class ChemicalApplicationMetadata 


    Private Sub New() 
     MyBase.New 
    End Sub 

    Public Property aspectSummaryUpdate As Nullable(Of Boolean) 

    Public Property bunding As Nullable(Of Boolean) 

    Public Property CARQ() As Byte 

    <Include()> 
    Public Property Chemical As Chemical 

etc... 

Espérons que cela aidera quelqu'un d'autre à l'avenir.

Questions connexes