J'ai un problème avec l'API Dynamic Expression. Je n'arrive pas à comparer un champ DataTable à DBNull.Value. L'API est supposée être capable de "supporter le champ statique ou l'accès aux propriétés statiques, tout champ public ou propriété est accessible". Toutefois, étant donné la requête suivante:API d'expression dynamique LINQ, prédicat avec comparaison DBNull.Value
var whatever = table1.AsEnumerable()
.Join(table2.AsEnumerable(),
(x) => x.Field<int>("Table1_ID"),
(y) => y.Field<int>("Table2_ID"),
(x, y) => new { x, y})
.AsQueryable()
.Where("x[\"NullableIntColumnName\"] == DBNull.Value");
je finis par obtenir l'erreur: « Pas de propriété ou un champ « DBNull » existe dans le type « <> f__AnonymousType0`2 » »
Quelqu'un a des idées sur la façon d'obtenir autour de ça? Je ne peux pas utiliser Submission.Field ("NullableIntColumnName") dans la chaîne passée à la méthode Where, btw, ou bien je serais capable de comparer avec null au lieu de DBNull.Value.
Cette solution ne fonctionne pas pour moi car j'utilise une partie Select personnalisée. Si vous utilisez un objet personnalisé comme un objet DTO dans la partie Sélection, le type de colonne sera également nullable. – ahmet