실제에 linq2db4o 내가 그러나 필요하면 나를 조건부 내 쿼리를 작성 할 수 있습니다 뭔가linq to db4o의 람다 구문은 무엇입니까? 나는 다음을 알고
from Apple a in db
where a.Color.Equals(Colors.Green)
select a
(I 다른 LINQ 변형에서 수 등)
public IEnumerable<Apple> SearchApples (AppleSearchbag bag){
var q = db.Apples;
if(bag.Color != null){
q = q.Where(a=>a.Color.Equals(bag.Color));
}
return q.AsEnumerable();
}
가능합니다 searchbag은 많은 속성을 보유하고 속성으로 채워진 모든 가능한 조합을 포착하는 거대한 if-tree를 구축하면 미친 사람의 작업이됩니다.
먼저
var q = (from Color c in db select c);
를 호출하고 거기에서 계속하는 것이 가능하다. 그러나 이것은 내가 찾고있는 것과 정확히 일치하지 않습니다.
면책 조항 : 거의 11 개월 전 my question에 가까운 복제본.
이제는 문제를 더 잘 이해하기 때문에 조금 더 분명해졌습니다. 이제는 db4o 개발자 눈의 일부가 이걸 잡을 수 있기를 바랍니다.
제안 사항이 있으십니까?
브릴리언트. 정확히 내가 뭘 찾고 : D –
AsQueryable 옵션을 시도했지만 메서드가 IObjectContainer에 존재하지 않는 것 같습니다. 이 메서드는 Db4objects.Db4o.Linq의 다른 곳에서 상주합니까? –
db4o의 최신 버전을 사용하고 있습니까? 확실히 거기에 있습니다. 그것은 ISodaQueryFactory에 정의되어 있지만 IObjectContainer는이 인터페이스를 확장합니다. Db4objects.Db4o.Linq에 using 지시문을 추가하기 만하면됩니다. –