2008-12-10 3 views
0

J'essaye de créer une association facultative entre un couple de tables. J'ai une table appelée facture. La table Facture possède une référence FK à la table Customer via le champ CustomerId. La table Facture dispose également d'une référence FK non appliquée au projet via le champ ProjectId.Comment créer des associations facultatives dans les classes Linq-To-Sql?

Est-il possible de configurer mes classes Linq-To-Sql de façon à avoir une association optionnelle entre la facture et la table de projet? Je voudrais être en mesure de choisir le nom du projet grâce à cette association, si elle est disponible.

Précision

Est-il possible de mettre cela dans le fichier dbml? J'ai une classe partielle qui étend l'entité Invoice et aimerait pouvoir créer une propriété appelée ProjectName qui enveloppe Invoice.Project.Name.

Je me demandais si c'était encore possible ou si je devais retourner la valeur de jointure gauche dans la requête.

Répondre

0

Je pense que je compris cela ... il était plus simple que ce que je pensais. Tout ce que j'ai besoin de vérifier pour voir si les relations sont nulles dans la classe partielle, ce qui étend la classe LinqToSql.

Quelque chose comme:

public string ModifiedByName 
    { 
     get 
     { 
      if (this.ModifiedByUser == null) 
       return string.Empty; 
      else 
       return this.ModifiedByUser.FirstName + " " + this.ModifiedByUser.LastName; 
     } 
    } 

    public string CreatedByName 
    { 
     get 
     { 
      if (this.CreatedByUser == null) 
       return string.Empty; 
      else 
       return this.CreatedByUser.FirstName + " " + this.CreatedByUser.LastName; 
     } 
    } 
0

Cela devrait le faire (la syntaxe VB):

Dim results = _ 
    From i in context.Invoice _ 
    Join c in context.Customer On i.CustomerId Equals c.CustomerId _ 
    Group Join p in context.Project On i.ProjectId Equals p.ProjectId Into g = Group _ 
    Select i.InvoiceName, c.CustomerName, ProjectName = (From x In g Select x.Name).SingleOrDefault 
+0

Y at-il de toute façon de mettre cela dans le fichier dbml? – mattruma

Questions connexes