Project DescriptionWilson.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);
WarningThis 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 IntegrationAdd 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);
}
}