Filtre sur une association en linq to sql

Résolu
SharpMao Messages postés 1024 Date d'inscription mardi 4 février 2003 Statut Membre Dernière intervention 7 juin 2010 - 20 oct. 2008 à 09:19
SharpMao Messages postés 1024 Date d'inscription mardi 4 février 2003 Statut Membre Dernière intervention 7 juin 2010 - 30 oct. 2008 à 07:14
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

jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
26 oct. 2008 à 18:46
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
3
SharpMao Messages postés 1024 Date d'inscription mardi 4 février 2003 Statut Membre Dernière intervention 7 juin 2010 69
30 oct. 2008 à 07:14
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)
3
Rejoignez-nous