コード例 #1
0
        public void LinqCreateNotLikeConditionTest()
        {
            AbstractDatabase fakeDb          = DatabaseFactory.CreateDatabase("", "System.Data.SqlClient") as AbstractDatabase;
            SelectCommand    expectedCommand = fakeDb.CreateSelectCommand("");
            SelectCommand    actualCommand   = fakeDb.CreateSelectCommand("");

            SqlConditionBuilder expectedConditionBuilder = expectedCommand.ConditionBuilder;

            SqlBasicParameterCondition expectedCondition = expectedConditionBuilder.NotLike("TestColumn1", "test1");
            SqlBasicParameterCondition actualCondition   = SqlLinqCondition.Create <TestEntity>(actualCommand, c => c.Test1.NotLike("test1")) as SqlBasicParameterCondition;

            Assert.AreEqual(expectedCondition, actualCondition);

            SqlBasicParameterCondition expectedCondition2 = expectedConditionBuilder.NotLikeAll("TestColumn1", "test2");
            SqlBasicParameterCondition actualCondition2   = SqlLinqCondition.Create <TestEntity>(actualCommand, c => c.Test1.NotLikeAll("test2")) as SqlBasicParameterCondition;

            Assert.AreEqual(expectedCondition2, actualCondition2);

            SqlBasicParameterCondition expectedCondition3 = expectedConditionBuilder.NotLikeStartWith("TestColumn1", "test3");
            SqlBasicParameterCondition actualCondition3   = SqlLinqCondition.Create <TestEntity>(actualCommand, c => c.Test1.NotLikeStartWith("test3")) as SqlBasicParameterCondition;

            Assert.AreEqual(expectedCondition3, actualCondition3);

            SqlBasicParameterCondition expectedCondition4 = expectedConditionBuilder.NotLikeEndWith("TestColumn1", "test4");
            SqlBasicParameterCondition actualCondition4   = SqlLinqCondition.Create <TestEntity>(actualCommand, c => c.Test1.NotLikeEndWith("test4")) as SqlBasicParameterCondition;

            Assert.AreEqual(expectedCondition4, actualCondition4);
        }
コード例 #2
0
        public void LinqCreateBasicConditionTest()
        {
            AbstractDatabase fakeDb          = DatabaseFactory.CreateDatabase("", "System.Data.SqlClient") as AbstractDatabase;
            SelectCommand    expectedCommand = fakeDb.CreateSelectCommand("");
            SelectCommand    actualCommand   = fakeDb.CreateSelectCommand("");

            SqlConditionBuilder expectedConditionBuilder = expectedCommand.ConditionBuilder;

            SqlBasicParameterCondition expectedCondition = expectedConditionBuilder.Equal("TestColumn2", 123);
            SqlBasicParameterCondition actualCondition   = SqlLinqCondition.Create <TestEntity>(actualCommand, c => c.Test2 == 123) as SqlBasicParameterCondition;

            Assert.AreEqual(expectedCondition, actualCondition);

            SqlBasicParameterCondition expectedCondition2 = expectedConditionBuilder.NotEqual("TestColumn2", 123);
            SqlBasicParameterCondition actualCondition2   = SqlLinqCondition.Create <TestEntity>(actualCommand, c => c.Test2 != 123) as SqlBasicParameterCondition;

            Assert.AreEqual(expectedCondition2, actualCondition2);

            SqlBasicParameterCondition expectedCondition3 = expectedConditionBuilder.GreaterThan("TestColumn2", 123);
            SqlBasicParameterCondition actualCondition3   = SqlLinqCondition.Create <TestEntity>(actualCommand, c => c.Test2 > 123) as SqlBasicParameterCondition;

            Assert.AreEqual(expectedCondition3, actualCondition3);

            SqlBasicParameterCondition expectedCondition4 = expectedConditionBuilder.LessThan("TestColumn2", 123);
            SqlBasicParameterCondition actualCondition4   = SqlLinqCondition.Create <TestEntity>(actualCommand, c => c.Test2 < 123) as SqlBasicParameterCondition;

            Assert.AreEqual(expectedCondition4, actualCondition4);

            SqlBasicParameterCondition expectedCondition5 = expectedConditionBuilder.GreaterThanOrEqual("TestColumn2", 123);
            SqlBasicParameterCondition actualCondition5   = SqlLinqCondition.Create <TestEntity>(actualCommand, c => c.Test2 >= 123) as SqlBasicParameterCondition;

            Assert.AreEqual(expectedCondition5, actualCondition5);

            SqlBasicParameterCondition expectedCondition6 = expectedConditionBuilder.LessThanOrEqual("TestColumn2", 123);
            SqlBasicParameterCondition actualCondition6   = SqlLinqCondition.Create <TestEntity>(actualCommand, c => c.Test2 <= 123) as SqlBasicParameterCondition;

            Assert.AreEqual(expectedCondition6, actualCondition6);

            SqlBasicParameterCondition expectedCondition7 = expectedConditionBuilder.IsNotNull("TestColumn1");
            SqlBasicParameterCondition actualCondition7   = SqlLinqCondition.Create <TestEntity>(actualCommand, c => c.Test1 != null) as SqlBasicParameterCondition;

            Assert.AreEqual(expectedCondition7, actualCondition7);

            SqlBasicParameterCondition expectedCondition8 = expectedConditionBuilder.IsNull("TestColumn3");
            SqlBasicParameterCondition actualCondition8   = SqlLinqCondition.Create <TestEntity>(actualCommand, c => c.Test3 == null) as SqlBasicParameterCondition;

            Assert.AreEqual(expectedCondition8, actualCondition8);

            SqlBasicParameterCondition expectedCondition10 = expectedConditionBuilder.EqualColumn("TestColumn2", "TestColumn3");
            SqlBasicParameterCondition actualCondition10   = SqlLinqCondition.Create <TestEntity>(actualCommand, c => c.Test2 == c.Test3) as SqlBasicParameterCondition;

            Assert.AreEqual(expectedCondition10, actualCondition10);
        }
コード例 #3
0
        public void CreateNotConditionTest()
        {
            AbstractDatabase fakeDb          = DatabaseFactory.CreateDatabase("", "System.Data.SqlClient") as AbstractDatabase;
            SelectCommand    expectedCommand = fakeDb.CreateSelectCommand("");
            SelectCommand    actualCommand   = fakeDb.CreateSelectCommand("");

            SqlConditionBuilder expectedConditionBuilder = expectedCommand.ConditionBuilder;
            SqlConditionBuilder actualConditionBuilder   = expectedCommand.ConditionBuilder;

            SqlBasicParameterCondition baseCondition     = expectedConditionBuilder.Equal("TestColumn2", 1);
            SqlNotCondition            expectedCondition = !baseCondition;
            SqlNotCondition            actualCondition   = SqlLinqCondition.Create <TestEntity>(actualCommand, c => !(c.Test2 == 1)) as SqlNotCondition;

            Assert.AreEqual(expectedCondition, actualCondition);
        }
コード例 #4
0
        private static AbstractSqlCondition ParseBinaryExpression(AbstractSqlCommandWithWhere sourceCommand, BinaryExpression expr, SqlOperator op)
        {
            MemberExpression        left       = ExpressionHelper.GetMemberExpression(expr.Left);
            String                  entityName = left.Expression.ToString();
            DatabaseColumnAttribute columnAttr = ExpressionHelper.GetColumnAttributeWithDataType(sourceCommand, left);

            if (columnAttr == null)
            {
                throw new NullAttributeException();
            }

            SqlBasicParameterCondition condition = null;

            if (expr.Right.NodeType == ExpressionType.MemberAccess)//如果右侧为实体属性
            {
                MemberExpression right = expr.Right as MemberExpression;

                if (right.Expression != null && String.Equals(entityName, right.Expression.ToString()))
                {
                    String columnName2 = ExpressionHelper.GetColumnName(sourceCommand, right);

                    condition = SqlBasicParameterCondition.InternalCreateColumn(sourceCommand, columnAttr.ColumnName, op, columnName2);

                    return(condition);
                }
            }

            Object value = ExpressionHelper.GetExpressionValue(expr.Right);

            if (value == null && (op == SqlOperator.Equal || op == SqlOperator.NotEqual))
            {
                op = (op == SqlOperator.Equal ? SqlOperator.IsNull : SqlOperator.IsNotNull);
            }

            condition = SqlBasicParameterCondition.InternalCreate(sourceCommand, columnAttr.ColumnName, op, columnAttr.DataType.Value, value);

            return(condition);
        }
コード例 #5
0
        public void CreateNotConditionTest()
        {
            AbstractDatabase fakeDb = DatabaseFactory.CreateDatabase("", "System.Data.SqlClient") as AbstractDatabase;

            SelectCommand       baseCommand      = fakeDb.CreateSelectCommand("");
            SqlConditionBuilder conditionBuilder = baseCommand.ConditionBuilder;

            SqlBasicParameterCondition baseCondition   = conditionBuilder.Equal("TestColumn2", 1);
            SqlNotCondition            actualCondition = !baseCondition;

            String expectedConditionClause = "(NOT((TestColumn2 = @PN_IDX_0)))";
            String actualConditionClause   = actualCondition.GetClauseText();

            DataParameter[] expectedParameters = baseCondition.GetAllParameters();
            DataParameter[] actualParameters   = baseCondition.GetAllParameters();

            Assert.AreEqual(expectedConditionClause, actualConditionClause);

            for (Int32 i = 0; i < expectedParameters.Length; i++)
            {
                Assert.AreEqual(expectedParameters[i], actualParameters[i]);
            }
        }
コード例 #6
0
        public void LinqCreateIsNullConditionTest()
        {
            AbstractDatabase fakeDb          = DatabaseFactory.CreateDatabase("", "System.Data.SqlClient") as AbstractDatabase;
            SelectCommand    expectedCommand = fakeDb.CreateSelectCommand("");
            SelectCommand    actualCommand   = fakeDb.CreateSelectCommand("");

            SqlConditionBuilder expectedConditionBuilder = expectedCommand.ConditionBuilder;

            SqlBasicParameterCondition expectedCondition = expectedConditionBuilder.IsNull("TestColumn1");
            SqlBasicParameterCondition actualCondition   = SqlLinqCondition.Create <TestEntity>(actualCommand, c => c.Test1.IsNull()) as SqlBasicParameterCondition;

            Assert.AreEqual(expectedCondition, actualCondition);

            SqlBasicParameterCondition expectedCondition2 = expectedConditionBuilder.IsNull("TestColumn2");
            SqlBasicParameterCondition actualCondition2   = SqlLinqCondition.Create <TestEntity>(actualCommand, c => c.Test2.IsNull()) as SqlBasicParameterCondition;

            Assert.AreEqual(expectedCondition2, actualCondition2);

            SqlBasicParameterCondition expectedCondition3 = expectedConditionBuilder.IsNull("TestColumn5");
            SqlBasicParameterCondition actualCondition3   = SqlLinqCondition.Create <TestEntity>(actualCommand, c => c.Test5.IsNull()) as SqlBasicParameterCondition;

            Assert.AreEqual(expectedCondition3, actualCondition3);
        }