[C#]Incohérence de where avec des valeurs nulles
Bonjour,
Je rencontre un problème avec linq to entities.
Pour cerner au mieux le problème, j'ai une table client avec des clients contenant un nom (not null) et un prénom (qui peut être null)
Si j'écris la condition suivante :
Code:
1 2 3 4 5
| if( (from c in Bdd.Client
where c.Nom.Equals(clientsource.Nom)
&& c.Prenom.Equals(clientsource.Prenom)
select c).FirstOrDefault() == null)
{... |
ou évidemment :
Code:
1 2 3 4 5
| if((from c in Bdd.Client
where c.Nom == clientsource.Nom
&& c.Prenom == clientsource.Prenom
select c).FirstOrDefault() == null)
{... |
Je m'attend à valider la condition SI dans ma base de données il n'y a pas déjà un client avec le même nom et le même prénom que mon client "clientsource".
Or, voici ce que j'obtiens avec 3 exemples simples (nom, prénom) :
Code:
1 2 3 4
| Base contient clientsource résultat
Albert,Chose Albert,Chose not null (OK)
Albert,Chose Albert,Machin null (OK)
Albert,null Albert,null null (PAS BON) |
Bref, si le nom existe déjà dans la base, mais que les prénoms sont null, alors linq to entities considère que les prénoms sont différents.
Quelqu'un peut m'expliquer ce problème qui consiste à constater que null != null?
Merci d'avance
Claude