Пример #1
0
        public MultipleDbInsertSource(IBaseDbConfig config)
            : this()
        {
            TkDebug.AssertArgumentNull(config, "config", null);

            SetConfig(config);
            IMultipleResolverConfig multiple = config as IMultipleResolverConfig;

            if (multiple != null)
            {
                SetMainResolver(multiple.MainResolver.CreateObject(this));
                if (multiple.ChildResolvers != null)
                {
                    foreach (var item in multiple.ChildResolvers)
                    {
                        AddDetailTableResolver(item.Resolver.CreateObject(this), item.IsNewEmptyRow);
                    }
                }
            }
            if (config.DataRight != null)
            {
                SupportData = config.SupportData;
                DataRight   = config.DataRight.CreateObject(MainResolver);
            }
            IEditDbConfig totalConfig = config as IEditDbConfig;

            if (totalConfig != null)
            {
                UseMetaData = totalConfig.UseMetaData;
            }
        }
Пример #2
0
        protected BaseMultipleDbSource(IBaseDbConfig config)
            : base(config)
        {
            IMultipleResolverConfig multiple = config.Convert <IMultipleResolverConfig>();

            if (multiple.ChildResolvers != null)
            {
                foreach (var item in multiple.ChildResolvers)
                {
                    ChildTableInfo info = new ChildTableInfo(this, item);
                    AddChildTable(info);
                }
            }
        }
Пример #3
0
        public static TableResolver CreateSingleTableResolver(object config, IDbDataSource source)
        {
            TkDebug.AssertArgumentNull(config, "config", null);
            TkDebug.AssertArgumentNull(source, "source", null);

            ISingleResolverConfig intf = config as ISingleResolverConfig;

            if (intf != null)
            {
                return(intf.Resolver.CreateObject(source));
            }

            IMultipleResolverConfig multiple = config as IMultipleResolverConfig;

            if (multiple != null)
            {
                return(multiple.MainResolver.CreateObject(source));
            }

            TkDebug.ThrowToolkitException(string.Format(ObjectUtil.SysCulture,
                                                        "{0}即没有支持ISingleResolverConfig接口,也没有支持IMultipleResolverConfig接口,无法创建TableResolver",
                                                        config.GetType()), config);
            return(null);
        }