Example #1
0
        /// <summary>
        /// 创建语句生成上下文。
        /// </summary>
        /// <param name="operate">操作对象。</param>
        /// <param name="generator">值生成对象。</param>
        public GenerateContext(DbOperateBase operate, SqlGeneratorBase generator)
        {
            var operateContext = operate.Executor;
            var dataContext    = operateContext.Context;

            Generator       = generator;
            _FragmentWriter = generator.FragmentWriter;
            var configure = dataContext.Configuration;

            Metadata    = configure.Metadata;
            _Translator = configure.Translator;
            Feature     = dataContext.Database.Feature;
            Data        = generator.CreateData(this, operate);
        }
Example #2
0
        /// <summary>
        /// 创建语句生成上下文。
        /// </summary>
        /// <param name="operate">操作对象。</param>
        /// <param name="generator">值生成对象。</param>
        public GenerateContext(DbOperateBase operate, SqlGeneratorBase generator)
        {
            var operateContext = operate.Executor;
            var dataContext    = operateContext.Context;

            Generator       = generator;
            _FragmentWriter = generator.FragmentWriter;
            var configure = dataContext.Configuration;

            Metadata    = configure.Metadata;
            _Translator = configure.Translator;
            Feature     = dataContext.Database.Feature;
            switch (operate.Type)
            {
            case EOperateType.InsertObjects:
            case EOperateType.InsertPropertys:
                Data = new GenerateDataForInsert(this, operate as DbObjectsOperateBase);
                break;

            case EOperateType.UpdateObjects:
            case EOperateType.UpdatePropertys:
                Data = new GenerateDataForUpdate(this, operate as DbObjectsOperateBase);
                break;

            case EOperateType.DeleteObjects:
                Data = new GenerateDataForDelete(this, operate as DbObjectsOperateBase);
                break;

            case EOperateType.AddRelation:
            case EOperateType.RemoveRelation:
                Data = new GenerateDataForRelation(this, operate as DbRelationOperateBase);
                break;

            case EOperateType.InsertStatement:
            case EOperateType.UpdateStatement:
            case EOperateType.DeleteStatement:
                Data = new GenerateDataForStatement(this, operate as DbStatementOperateBase);
                break;

            default:
                Data = new GenerateData(this, operate);
                break;
            }
        }