Search Wiki:
Project Description
Wilson.ORMapper query framework similar to nHibernate's DetachedCriteria.

Simple Code Sample
QueryBuilder<Product> builder = new QueryBuilder<Product>.With(objectSpace.QueryHelper);
 
builder.Add(Expression.GreaterThan("price",10));
builder.Add(Expression.Equals("visible",true));
 
builder.AddOrder(OrderBy.For<Product>("title"));
 
string query = builder.GetObjectQuery();
return objectSpace.GetObjectSet(query);


Warning
This release is early and experimental, probably not safe in a production environment. Also the query strings generated have not been tested with anything other than SQL Server 2000/2005.

WilsonOR.Wrapper Integration
Add something like this to Data_T.cs (http://code.google.com/p/wilsonormapper/source/browse/trunk/WilsonORWrapper/WilsonORWrapper/Services/Data_T.cs) or even better, inherit from Data_T.cs.
protected static QueryBuilder<T> GetQueryBuilder()
{
     return QueryBuilder<T>.With(DataProvider.ObjectSpace.QueryHelper);
}
 
public static Collection<T> Retrieve(QueryBuilder<T> builder)
{
      return InnerRetrieveMany(builder.GetObjectQuery(),false);
}


then utilized like so...
public class ProductRepository : Data<Product>
{
     public static IList<Product> RetrieveManyByPrice(decimal price)
     {
          QueryBuilder builder = GetQueryBuilder();
          builder.Add(Expression.Equals("price",price);
          return Retrieve(builder);
     }
}

Last edited May 19 at 1:36 PM  by mxmissile, version 10
Updating...