Filtre sur une association en linq to sql [Résolu]

Signaler
Messages postés
1024
Date d'inscription
mardi 4 février 2003
Statut
Membre
Dernière intervention
7 juin 2010
-
Messages postés
1024
Date d'inscription
mardi 4 février 2003
Statut
Membre
Dernière intervention
7 juin 2010
-
Salut à vous tous,

J'ai un petit problème en linq to sql.

J'ai deux tables qui sont reliées, A->B. Mais en plus de l'association sur la clé primaire, j'aimerais mettre une condition sur une autre colonne, genre
"where B.Type =1", afin d'avoir une relation OneToOne. Est-il possible de réaliser ceci avec linq to sql ?

Amicalement, SharpMao

"C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!"
(Coluche / 1944-1986 / Pensées et anecdotes)

2 réponses

Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
28
Bonjour,

je ne suis pas expert avec linq to SQL, mais il ne me semble pas que l'on puisse faire une relation 1.1 avec linq to SQL. 

J'ai eu un besoin similaire.

En gros j'ai 2 tables :

Animal :
   AnimalID
   AnimalTypeID
   ...

Dog
    AnimalID
    ...

Ce que je voulais c'est que je fais un

var db = new datacontext(); ..

var q  = from animal in db.animals 
             select animal;

j'obtienne une liste d'animal qui contient des instances de Animal et de Dog (Dog hérite de Animal) j'ai réussit à faire cette bidouille mais tu peux oublier le designer (qui est d'ailleurs useless tellement il restreint les possibilités de linq to sql) et il y a quelques concepts avancés de linq to sql ...

Si ca t'interesse je peux essayer de te fournir une repro de mon code. (car oui dans la vrai vie je n'ai pas de Animal ni de Dog ;))

<hr />Cyril - MVP ASP.net - MCPD ASP.net & MCTS SQL - Consultant indépendant
Messages postés
1024
Date d'inscription
mardi 4 février 2003
Statut
Membre
Dernière intervention
7 juin 2010
64
Hello,

Je ne sais pas si c'est ce que tu veux dire par "oublier le designer", mais j'ai fini par faire la chose suivante :
Mettre ma propriété 1..n en internal dans le designer, et compléter la classe partielle avec une méthode de mon cru qui fait office de filtre.

Merci pour ta réponse,

Amicalement, SharpMao

"C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!"
(Coluche / 1944-1986 / Pensées et anecdotes)