コード例 #1
0
        public void NullableTest()
        {
            var f1 = new Expressions.KVFieldExpression(1, EntityFieldType.Int32);
            var f2 = new Expressions.KVFieldExpression(2, EntityFieldType.Guid);

            Expressions.Expression exp = f1 > 5 & f2 == null;
            var expString1             = exp.ToString();

            var linqExp    = exp.ToLinqExpression(TestHelper.GetMockExpressionContext());
            var expString2 = linqExp.ToString();
        }
コード例 #2
0
        public unsafe void KVFieldExpressionTest_Mvcc()
        {
            var data  = StringHelper.FromHexString("00000020E4D8BEBE75592200000080000600004141414141310501880100000000000000000002060000414141414131");
            var field = new Expressions.KVFieldExpression(Consts.EMPLOEE_NAME_ID, EntityFieldType.String);

            Expressions.Expression filter = field == "AAAAA1";

            var ctx  = TestHelper.GetMockExpressionContext();
            var body = filter.ToLinqExpression(ctx);
            var exp  = Expression.Lambda <KVFilterFunc>(body,
                                                        ctx.GetParameter("vp"), ctx.GetParameter("vs"), ctx.GetParameter("mv"), ctx.GetParameter("ts"));
            var func = exp.Compile();

            fixed(byte *ptr = data)
            {
                IntPtr dataPtr = new IntPtr(ptr);

                Assert.True(func(dataPtr, data.Length, true, ulong.MaxValue));
            }
        }
コード例 #3
0
        public unsafe void KVFieldExpressionTest_NoneMvcc()
        {
            var data  = StringHelper.FromHexString("400005000041646D696E800005000041646D696E");
            var field = new Expressions.KVFieldExpression(Consts.EMPLOEE_NAME_ID, EntityFieldType.String);

            Expressions.Expression filter = field == "Admin";

            var ctx  = TestHelper.GetMockExpressionContext();
            var body = filter.ToLinqExpression(ctx);
            var exp  = Expression.Lambda <KVFilterFunc>(body,
                                                        ctx.GetParameter("vp"), ctx.GetParameter("vs"), ctx.GetParameter("mv"), ctx.GetParameter("ts"));
            var func = exp.Compile();

            fixed(byte *ptr = data)
            {
                IntPtr dataPtr = new IntPtr(ptr);

                Assert.True(func(dataPtr, data.Length, false, 0));
            }
        }