Dynamic Expression API の使用に問題があります。DataTable フィールドを DBNull.Value と比較できないようです。APIは、「静的フィールドまたは静的プロパティへのアクセスをサポートできるようになっています。すべてのパブリックフィールドまたはプロパティにアクセスできます。」. ただし、次のクエリが与えられた場合:
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");
最終的にエラーが発生します:「タイプ '<>f__AnonymousType0`2' にプロパティまたはフィールド 'DBNull' が存在しません」
誰でもこれを回避する方法についてアイデアがありますか? Where メソッドに渡される文字列で Submission.Field("NullableIntColumnName") を使用することはできません。そうしないと、DBNull.Value の代わりに null と比較できます。