를 확인하는 방법 - 간단한 쿼리 :db4o는 LINQ 쿼리 - 널 (null) 문자열 안녕
var q = (from SomeObject o in container
where
o.SomeInt > 8
&& o.SomeString != null //Null Ref here
select o;
난 항상 null 참조 예외를 얻을.
나는 String.IsNullOrEmpty (o.SomeString)를 사용하여 내가 & & o.SomeString를 사용하는 것처럼 쿼리, 한 약 100 배를합니다! 경우 = ""(어느 것이 빠른 방법이지만, 분명히 정확하지).
DB4o가 IsNullOrEmpty 호출에 전달하기 위해 오브젝트를 활성화해야하고 인덱스를 사용할 수 없기 때문에 추측하고 있습니다.
제 질문은이 상황에서 null을 확인하는 가장 좋은 방법은 무엇입니까? 뭔가가 있습니다 : mystring! = Db4o.DBNull.Value, 또는 뭔가?
건배, 데이브
안녕하세요 - 답장을 보내 주셔서 감사합니다.이 Db4o 자료에 상당히 도움이됩니다. 고맙습니다. 방금 모든 DLL을 최신 릴리스로 업그레이드 했으므로 이제 쿼리가 실행됩니다. 그러나 더 이상 내 인덱스가 작동하지 않습니다. * 한숨 * 콘솔에 로깅을 사용하도록 설정했는데 이전 색인에 나와있는 것처럼 색인을 잃어버린 것에 대한 메시지가 표시되지 않습니다. 아이디어가 있으십니까? :( 건배, 데이브 –
흠 그 이상입니다. 당신은 비주얼 스튜디오의 출력 창에 새로운 'Db4objects.Db4o.Linq.QueryOptimizationException'을 볼 수 있습니까? 즉 해당 쿼리가 더 이상 최적화되어 있지 않습니다 나타냅니다. 8.0 베타 버전으로 전환 한 경우 'Db4objects.Db4o.Linq.dll'어셈블리에 'Mono.Reflection.dll'이 있는지 확인하십시오. 이것은 Cecil 어셈블리 대신 새로운 종속성입니다. 어쨌든 – Gamlor
나는 최신 v7 Dll을 사용하고 있었으며 베타 버전으로 업그레이드 했으므로 이제 모든 것이 정상적으로 보입니다. 다시 도움을 요청합니다. Dave –