Some samples for valid queries

Query q = pc.NewQuery(typeof (DataContainer), qh.boolVar + " = 1");

Query q = pc.NewQuery(typeof (DataContainer), qh.boolVar + " = {0}");
q.Parameters.Add(true);

 

Query q = pc.NewQuery(typeof (DataContainer), qh.byteVar + " = " + (0x55).ToString());

// Better use Parameters
Query q = pc.NewQuery(typeof (DataContainer), qh.dateTimeVar + " = '05/06/2003'"); // dd/mm/yyyy

// The same query with parameters:
Query q = pc.NewQuery(typeof (DataContainer), qh.dateTimeVar + " = {0}");
q.Parameters.Add(dateTimeVal);

 

Query q = pc.NewQuery(typeof (DataContainer), qh.dateTimeVar + " BETWEEN {0} AND {1}");
q.Parameters.Add(DateTime.Now.Date - TimeSpan.FromDays(30));
q.Parameters.Add(DateTime.Now.Date);

 

Query q = pc.NewQuery(typeof (DataContainer), qh.stringVar + " LIKE 'T%' ESCAPE '\\'");

 

// Sql pass-through query

Query q = pc.NewQuery(typeof (DataContainer), "SELECT * FROM DataContainer where ID = 11", false, Query.Language.Sql);

 

// field name = SQL keyword

Query q = pc.NewQuery(typeof (DataContainer), "[between] LIKE 'T%'");

 

The query

Query q = pm.NewQuery(typeof (Customer), qh.orders.orderItems.product.name + " = {0}");
q.Parameters.Add("Shirt");

generates this SQL code (SQL server data provider)

SELECT [Customer].* FROM [Customer], [Order_], [OrderItem], [Product]

WHERE ([Order].[IDCustomer] = [Customer].[ID]

       AND [OrderItem].[IDOrder] = [Order_].[ID]

       AND [Product].[ID] = [OrderItem].[IDProduct])

AND [Product].[Name] = 'Shirt'