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); }
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); }
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); }
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); }
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]); } }
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); }