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