2009-09-14 10 views
0

Je sais que je peux créer des associations LINQ sans clé étrangère. Le problème est, je l'ai fait en ajoutant l'attribut [Association] dans le fichier DBML (même que par le concepteur), qui sera effacé à nouveau après avoir actualisé ma base de données (et recharger toute la structure de la table).LINQ: Créer des associations persistantes dans le code, sans clé étrangère

Je sais qu'il y a le fichier MyData.cs (dans le cadre de DBML) dans lequel je peux placer mes extensions partielles etc. aux objets de domaine (pour persister même après avoir actualisé le DBML), mais je ne sais pas savoir comment créer une association là-bas?

Répondre

1

Vous pouvez créer un fichier CS et une classe partielle personnalisée.

public partial class myClass 

Et, voyez si vous pouvez placer des associations là. Je n'ai pas travaillé avec des associations personnalisées de cette manière, mais il semble que cela s'applique à la propriété. Vous pouvez couper et coller la propriété dans la classe partielle et cela va construire.

public partial class Parent 
{ 

    [Association(Name = "Parent_Child", Storage = "_Childs", ThisKey = "ParentKey", OtherKey = "ChildKey")] 
    public EntitySet<Child> Childs 
    { 
     get 
     { 
      return this._Childs; 
     } 
     set 
     { 
      this._Childs.Assign(value); 
     } 
    } 
} 
+0

N'auriez-vous pas réellement besoin de définir _Childs pour que cela fonctionne? Quelque chose comme 'protégé EntityRef _Childs;' Et puis définir la méthode partielle OnCreate 'partial void OnCreated() {this._Childs = par défaut (EntityRef ); } '. – jahu

Questions connexes