public void Sql2008_ToSQL()
        {
            IDbTranslator                   dbTranslator     = new Sql2008Translator();
            IExpressionParser               expressionParser = new ExpressionParser(EntityMapperFactory.Instance.GetEntityMapper(typeof(User)));
            DataParameterCollection         dpc       = new DataParameterCollection();
            Expression <Func <User, bool> > predicate = entity =>
                                                        !(entity.Age == 18) &&
                                                        entity.Age != 27 &&
                                                        entity.CreationTime <DateTime.Now &&
                                                                             entity.CreatorUserId == 1000 &&
                                                                             entity.DeleterUserId == null &&
                                                                             entity.DeletionTime> DateTime.Now &&
                                                        entity.Height >= 175 &&
                                                        entity.Id <= 0 &&
                                                        entity.IsDeleted &&
                                                        entity.Six == Six.Woman &&
                                                        entity.Name == "Maple" &&
                                                        entity.Name.Contains("apl") &&
                                                        entity.Name.StartsWith("Map") &&
                                                        entity.Name.EndsWith("ple") &&
                                                        true;

            string sql = expressionParser.ToSQL(predicate.Body, dbTranslator, dpc);

            Assert.Equal(1, 1);
        }
        public void Sql2008_IN_ToSQL()
        {
            string[] palyers = new string[]
            {
                "A"
            };

            int[] ages = new int[]
            {
                1, 2, 3
            };

            Six[] sixs = new Six[]
            {
                Six.Man,
                Six.Woman
            };

            IDbTranslator                   dbTranslator     = new Sql2008Translator();
            IExpressionParser               expressionParser = new ExpressionParser(EntityMapperFactory.Instance.GetEntityMapper(typeof(User)));
            DataParameterCollection         dpc       = new DataParameterCollection();
            Expression <Func <User, bool> > predicate = entity => palyers.Contains(entity.Name) || ages.Contains(entity.Age) || sixs.Contains(entity.Six);

            string sql = expressionParser.ToSQL(predicate.Body, dbTranslator, dpc);

            Assert.Equal(1, 1);
        }
        public void Sql2008_DATAOBJECT_ToSQL()
        {
            IDbTranslator                   dbTranslator     = new Sql2008Translator();
            IExpressionParser               expressionParser = new ExpressionParser(EntityMapperFactory.Instance.GetEntityMapper(typeof(User)));
            DataParameterCollection         dpc       = new DataParameterCollection();
            Expression <Func <User, bool> > predicate = entity => entity.Id == 0 && entity.Address.Number == 301;
            string sql = expressionParser.ToSQL(predicate.Body, dbTranslator, dpc);

            Assert.Equal(1, 1);
        }
        private IDbTranslator getDbTranslator(IDataSetting dataSetting)
        {
            IDbTranslator dbTranslator;

            switch (dataSetting.DataSouceType)
            {
            case DataSouceType.MySQL:
                dbTranslator = new MySQLTranslator();
                break;

            case DataSouceType.Oracle:
                dbTranslator = new OracleTranslator();
                break;

            case DataSouceType.Sql2000:
                dbTranslator = new Sql2000Translator();
                break;

            case DataSouceType.Sql2005:
                dbTranslator = new Sql2005Translator();
                break;

            case DataSouceType.Sql2008:
                dbTranslator = new Sql2008Translator();
                break;

            case DataSouceType.Sqlite:
                dbTranslator = new SqliteTranslator();
                break;

            default:
                throw new MapleException(string.Format("未知的数据源类型“{0}”。请核实数据源类型配置是否正确。", dataSetting.DataSouceType));
            }

            return(dbTranslator);
        }