示例#1
0
        public void Can_scan_advanced_expressions()
        {
            var customer = InsertCustomerAndOrders();

            var orders = db.FromScan <Order>(x => x.Product.StartsWith("Item A"))
                         .Exec();

            orders = db.FromScan <Order>(x => Dynamo.BeginsWith(x.Product, "Item A")).Exec();

            orders = db.FromScan <Order>().Filter("begins_with(Product, :s)", new { s = "Item A" })
                     .Exec();

            orders = db.FromScan <Order>(x => x.Product.Contains("em A")).Exec();

            orders = db.FromScan <Order>(x => Dynamo.Contains(x.Product, "em A")).Exec();

            orders = db.FromScan <Order>().Filter("contains(Product, :s)", new { s = "em A" }).Exec();

            var qtys = new[] { 5, 10 };

            orders = db.FromScan <Order>(x => qtys.Contains(x.Qty)).Exec();

            orders = db.FromScan <Order>(x => Dynamo.In(x.Qty, qtys)).Exec();

            orders = db.FromScan <Order>().Filter("Qty in(:q1,:q2)", new { q1 = 5, q2 = 10 }).Exec();

            orders = db.FromScan <Order>(x => x.Product.Length == 6).Exec();

            orders = db.FromScan <Order>(x => Dynamo.Size(x.Product) == 6).Exec();

            orders = db.FromScan <Order>().Filter("size(Product) = :n", new { n = 6 }).Exec();

            orders = db.FromScan <Order>(x => Dynamo.Between(x.Qty, 3, 5)).Exec();

            orders = db.FromScan <Order>(x => x.Qty >= 3 && x.Qty <= 5).Exec();

            orders = db.FromScan <Order>().Filter("Qty between :from and :to", new { from = 3, to = 5 }).Exec();

            orders = db.FromScan <Order>(x =>
                                         Dynamo.AttributeType(x.Product, DynamoType.String) &&
                                         Dynamo.AttributeType(x.Qty, DynamoType.Number))
                     .Exec();

            orders = db.FromScan <Order>().Filter(
                "attribute_type(Qty, :n) and attribute_type(Product, :s)", new { n = "N", s = "S" })
                     .Exec();

            orders = db.FromScan <Order>(x => Dynamo.AttributeExists(x.Product)).Exec();

            orders = db.FromScan <Order>().Filter("attribute_exists(Product)").Exec();

            orders.PrintDump();
        }
示例#2
0
        public void Does_serialize_Size()
        {
            InitTypes();

            var q = Parse <Collection>(x => Dynamo.Size(x.Title) > 3);

            Assert.That(q.FilterExpression, Is.EqualTo("(size(Title) > :p0)"));
            Assert.That(q.Params.Count, Is.EqualTo(1));
            Assert.That(q.Params[":p0"], Is.EqualTo(3));

            q = Parse <Collection>(x => Dynamo.Size(x.SetInts) > 3);
            Assert.That(q.FilterExpression, Is.EqualTo("(size(SetInts) > :p0)"));
            Assert.That(q.Params[":p0"], Is.EqualTo(3));

            q = Parse <Collection>(x => Dynamo.Size(x.ListStrings) > 3);
            Assert.That(q.FilterExpression, Is.EqualTo("(size(ListStrings) > :p0)"));
            Assert.That(q.Params[":p0"], Is.EqualTo(3));
        }