嘿 - 簡單的查詢:DB4O Linq查詢 - 如何檢查空字符串
var q = (from SomeObject o in container
where
o.SomeInt > 8
&& o.SomeString != null //Null Ref here
select o;
我總是得到一個空引用異常。
如果我使用String.IsNullOrEmpty(o.SomeString)查詢需要大約100倍長,好像我用& & o.SomeString!=「」(這是更快的方式,但顯然不正確)。
我在猜測,因爲DB4o需要激活對象,以便將它們傳遞給IsNullOrEmpty調用,並且不能使用索引。
我的問題是,有什麼更好的方法來檢查在這種情況下的空值?有沒有這樣的東西:mystring!= Db4o.DBNull.Value,或者什麼?
乾杯,戴夫
嘿 - 謝謝你的回覆,你對這個Db4o的東西很有幫助。非常感謝。 我剛剛升級所有DLL的最新版本,現在查詢運行 - 但是我的索引沒有再工作。 *嘆息* 我已經啓用了日誌記錄到控制檯,並且我沒有收到關於缺少索引的任何消息(正如你在我的早期文章中幫助過我的)。 任何想法? :( 乾杯,戴夫 嗯 – 2010-06-17 14:20:59
這是奇怪的。你看到在輸出窗口在視覺工作室任何新的「Db4objects.Db4o.Linq.QueryOptimizationException」?這將表明,查詢不再優化。 檢查你是否在'Db4objects.Db4o.Linq.dll'組件中有'Mono.Reflection.dll',如果你切換到8.0 beta版本。這是一個新的依賴項,而不是Cecil-assemblies。 Anyway ,這很奇怪,應該調查 – Gamlor 2010-06-17 14:40:45
我正在使用最新的v7 Dll's,我已經升級到測試版,現在一切似乎都好了,再次感謝您的幫助 Dave – 2010-06-17 15:38:08