Je sais que ce qui suit est possible avec linq2db4oSyntaxe Lambda dans linq à db4o?
from Apple a in db
where a.Color.Equals(Colors.Green)
select a
Ce que je dois est cependant quelque chose qui me permet de construire ma requête conditionnelle (comme je peux dans d'autres variantes de 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();
}
Dans un vrai Situation mondiale Le sac de recherche contiendra de nombreuses propriétés et la construction d'un arbre géant qui capture toutes les combinaisons possibles de propriétés remplies serait un travail de fou.
Il est possible d'appeler d'abord
var q = (from Color c in db select c);
puis continuer à partir de là. mais ce n'est pas exactement ce que je cherche.
Avis de non-responsabilité: près du double de my question de près de 11 mois.
Celui-ci est un peu plus clair que je comprends mieux la question maintenant et j'espère maintenant certains des yeux de db4o dev pourraient attraper ceci sur ceci:
Des suggestions?
Brillant. Exactement ce que je cherchais: D –
Bien que j'ai essayé l'option AsQueryable, mais la méthode ne semble pas exister sur le IObjectContainer. Cette méthode réside-t-elle ailleurs que dans Db4objects.Db4o.Linq? –
Utilisez-vous la dernière version de db4o? C'est définitivement là. Bien qu'il soit défini sur ISodaQueryFactory, mais IObjectContainer étend cette interface. Vous venez d'ajouter une directive using pour Db4objects.Db4o.Linq. –