J'ai besoin de construire un filtre dynamique et je voulais continuer à l'utiliser à des entités. Pour cette raison, je voulais utiliser le PredicateBuilder de albahari.
J'ai créé le code suivant:
var invoerDatums = PredicateBuilder.True<OnderzoeksVragen>();
var inner = PredicateBuilder.False<OnderzoeksVragen>();
foreach (var filter in set.RapportInvoerFilter.ToList())
{
if(filter.IsDate)
{
var date = DateTime.Parse(filter.Waarde);
invoerDatums = invoerDatums.Or(o => o.Van >= date && o.Tot <= date);
}
else
{
string temp = filter.Waarde;
inner = inner.Or(o => o.OnderzoekType == temp);
}
}
invoerDatums = invoerDatums.And(inner);
var onderzoeksVragen = entities.OnderzoeksVragen
.AsExpandable()
.Where(invoerDatums)
.ToList();
Quand j'ai couru le code il y avait seulement 1 filtre qui n'était pas un filtre de date. Si seulement l'intérieur de prédicat a été rempli. Lorsque le prédicat a été exécuté, j'ai obtenu l'erreur suivante.
Le paramètre " f " n'était pas lié à la spécifié requête LINQ to entities de l'expression.
Alors que la recherche d'une réponse que j'ai trouvé la suivante de la page. Mais ceci est déjà mis en œuvre dans le LINQKit.
Est-ce que quelqu'connu cette erreur et sait comment le résoudre?