Skip to content

Instantly share code, notes, and snippets.

@jmarnold
Created May 17, 2011 03:30
Show Gist options
  • Save jmarnold/975884 to your computer and use it in GitHub Desktop.
Save jmarnold/975884 to your computer and use it in GitHub Desktop.
Specifications
public interface ISpecification<T>
{
Expression<Func<T, bool>> IsSatisfied();
}
public virtual IQueryable<T> Query(ISpecification<T> query)
{
var specifications = _specificationPolicies
.Where(p => p.Applies<T>())
.Select(p => p.Build<T>())
.ToList();
specifications.Add(query);
var specification = _specificationComposer.Compose(specifications);
return Entities.Where(specification.IsSatisfied());
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment