J'ai une fonction de requête linq comme (simplifié) :
public IList<Document> ListDocuments(int? parentID)
{
return (
from doc in dbContext.Documents
where doc.ParentID == parentID
select new Document
{
ID = doc.ID,
ParentID = doc.ParentID,
Name = doc.SomeOtherVar
}).ToList();
}
Maintenant, pour une raison quelconque, lorsque je passe null pour le parentID (actuellement, je n'ai que des données avec des parentIDs null), je n'obtiens aucun résultat.
Je copie et colle cette requête dans LinqPad et j'exécute ce qui suit :
from doc in dbContext.Documents
where doc.ParentID == null
select doc
Je reçois un ensemble de résultats comme prévu...
La requête actuelle comporte des jointures à gauche et d'autres jointures, mais je les ai supprimées et testées et j'ai obtenu le même résultat, de sorte que les jointures n'affectent rien. L'application et LinqPad sont tous deux connectés à la même base de données.
Editer : J'ai testé avec seulement 'null' dans la requête de l'application et il retourne le résultat comme prévu, donc le problème est l'utilisation de null vs int ? J'ai mis à jour la question pour qu'elle soit plus utile aux autres personnes qui ont le même problème et qui trouveront ce fil de discussion.