La partie suivante du code est d'une requête LINQ plus grande, mais il est celui que je besoin d'aide avec:Comment traiter dans nulls LINQ to SQL avec Regex.Replace sur la propriété
KnowledgeTypeText = Regex.Replace((from categoryVersion in _Context.ArticleCategoryVersions
join category in _Context.Categories
on categoryVersion.CategoryID equals category.CategoryID
where category.ParentID.HasValue == true
&& category.ParentID.Value == rootKnowledgeTypeID
&& categoryVersion.Version == articleLatestVersions.Version
&& categoryVersion.ArticleID == articleLatestVersions.ArticleID
select category).First().Name, @"(\d+[\\.]?\s*)", ""),
La version courte : Cette partie de la requête va chercher une catégorie pour un article, mais il ne doit pas nécessairement avoir une valeur. Si elle a une valeur, je dois enlever la numérotation au début du texte.
Je reçois des exceptions lorsque la catégorie est NULL car elle essaie évidemment de faire l'action Remplacer sur la propriété Nom.
Comment ajouter du code pour gérer les Nulls? Il serait prudent de retourner une chaîne vide, mais je ne suis pas sûr de savoir comment le tester et retourner une chaîne vide.
Avez-vous vraiment besoin de l'intégrer? Pourquoi ne pas simplement extraire select, faire 'FirstOrDefault' dessus, puis remplacer si la valeur n'est pas nulle? – icebat
Est-ce que 'category' est nul? ou est-ce que c'est la propriété 'Name'' null'? Ou n'y a-t-il aucun élément dans la séquence? –
Copie possible de [sélection d'une propriété de FirstOrDefault dans le cas où FirstOrDefault renvoie null] (https://stackoverflow.com/questions/19947464/selecting-a-property-from-firstordefault-in-case-firstordefault-returns-null) – Stefan