動的式APIを使用する際に問題があります。私はDBNull.Valueに対してDataTableフィールドを比較することはできません。 APIは、 "静的フィールドまたは静的プロパティへのアクセスをサポートすることができるようになっています。すべてのパブリックフィールドまたはプロパティにアクセスできます。"LINQ動的式API、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");
私はエラーになってしまう:しかし次のクエリ与えられた「いいえプロパティまたはフィールド 『のはDBNull』 『<> f__AnonymousType0`2』タイプに存在する」
誰でも取得する方法についてのアイデアを持っていますこの周り?私は、Subtype.Field( "NullableIntColumnName")をWhereメソッド、btwに渡された文字列で使うことはできません。さもなければ、DBNull.Valueの代わりにnullと比較することができます。あなたは
.Where(string.format("x[\"NullableIntColumnName\"] == {0}",DBNull.Value));
私はカスタマイズされた選択部分を使用しているので、その解決策は私のためには機能しません。選択部分でDTOのようなカスタマイズされたオブジェクトを使用すると、列の型もNULL可能になります。 – ahmet