How do I construct my RavenDb where clause for this document, given these requirements?
This question builds on the following question (s)

Indexing : http://stackoverflow.com/questions/9961882/how-do-i-construct-my-ravendb-static-indexes-for-this-document-given-these-requ

Simple Where clause with paging : http://stackoverflow.com/questions/10003360/how-to-construct-a-proper-where-clause-with-ravendb

The jist of the question is how do I code up a controller method for instance, that can accept  a N number of columns to participate in a where clause? How to I take this to the next level?

Document:

    [Serializable]
    public class Product
    {
        public string AveWeight { get; set; }

        public string BrandName { get; set; }

        public string CasePack { get; set; }

        public string Catalog { get; set; }

        public decimal CatalogId { get; set; }

        public decimal CategoryId { get; set; }

        public string Info { get; set; }

        public bool IsOfflineSupplierItem { get; set; }

        public bool IsRebateItem { get; set; }

        public bool IsSpecialOrderItem { get; set; }

        public bool IsSpecialPriceItem { get; set; }

        public bool IsTieredPricingItem { get; set; }

        public string ItemNum { get; set; }

        public string ManufactureName { get; set; }

        public string ManufactureNum { get; set; }

        public decimal OffineSupplierId { get; set; }

        public string PackageRemarks { get; set; }

        public decimal Price { get; set; }

        public decimal PriceGroupId { get; set; }

        public decimal ProductId { get; set; }

        public string ProductName { get; set; }

        public int Quantity { get; set; }

        public string SupplierName { get; set; }

        public string UOM { get; set; }

        public string Upc { get; set; }

        public string Url { get; set; }

    }


Naive Where clause

      string t1 = "foo";
      string t2 = "bar";
      string t3 = "bat";

      products = DocumentSession.Query<Product>()
          .Statistics(out stats)
          .Where(p => p.INFO2.StartsWith(t1) && p.INFO2.StartsWith(t2) && p.INFO2.StartsWith(t3)) 
          .OrderByField(columnToSortBy, columnToSortByAsc)
          .Skip(pageIndex * pageSize)
          .Take(pageSize)
          .ToList()
          ;

How do I construct my RavenDb where clause for this document, given these requirements?
===

This question builds on the following question (s)

Indexing : http://stackoverflow.com/questions/9961882/how-do-i-construct-my-ravendb-static-indexes-for-this-document-given-these-requ

Simple Where clause with paging : http://stackoverflow.com/questions/10003360/how-to-construct-a-proper-where-clause-with-ravendb

The jist of the question is how do I code up a controller method for instance, that can accept  a N number of columns to participate in a where clause? How to I take this to the next level?

Document:

    [Serializable]
    public class Product
    {
        public string AveWeight { get; set; }

        public string BrandName { get; set; }

        public string CasePack { get; set; }

        public string Catalog { get; set; }

        public decimal CatalogId { get; set; }

        public decimal CategoryId { get; set; }

        public string Info { get; set; }

        public bool IsOfflineSupplierItem { get; set; }

        public bool IsRebateItem { get; set; }

        public bool IsSpecialOrderItem { get; set; }

        public bool IsSpecialPriceItem { get; set; }

        public bool IsTieredPricingItem { get; set; }

        public string ItemNum { get; set; }

        public string ManufactureName { get; set; }

        public string ManufactureNum { get; set; }

        public decimal OffineSupplierId { get; set; }

        public string PackageRemarks { get; set; }

        public decimal Price { get; set; }

        public decimal PriceGroupId { get; set; }

        public decimal ProductId { get; set; }

        public string ProductName { get; set; }

        public int Quantity { get; set; }

        public string SupplierName { get; set; }

        public string UOM { get; set; }

        public string Upc { get; set; }

        public string Url { get; set; }

    }


Naive Where clause

      string t1 = "foo";
      string t2 = "bar";
      string t3 = "bat";

      products = DocumentSession.Query<Product>()
          .Statistics(out stats)
          .Where(p => p.INFO2.StartsWith(t1) && p.INFO2.StartsWith(t2) && p.INFO2.StartsWith(t3)) 
          .OrderByField(columnToSortBy, columnToSortByAsc)
          .Skip(pageIndex * pageSize)
          .Take(pageSize)
          .ToList()
          ;
