我有使用動態表達式API的問題。我似乎無法將DataTable字段與DBNull.Value進行比較。 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’」
任何人對如何獲得靈感在這附近?我不能在傳遞給Where方法的字符串中使用Submission.Field(「NullableIntColumnName」),或者我可以比較null而不是DBNull.Value。
該解決方案對我無效,因爲我使用自定義選擇部件。如果在Select部分中使用像DTO這樣的自定義對象,則列的類型也將爲空。 – ahmet 2016-08-08 12:27:52