/// <summary>从提供者和连接字符串猜测数据库处理器</summary> /// <param name="connStr"></param> /// <param name="provider"></param> /// <returns></returns> internal static Type GetProviderType(String connStr, String provider) { if (!String.IsNullOrEmpty(provider)) { //Type type = XCodeService.ResolveType<IDatabase>(m => "" + m.Identity != "" && GetDefault((DatabaseType)m.Identity).Support(provider)); //if (type != null) return type; foreach (var item in XCodeService.Container.ResolveAllMaps(typeof(IDatabase))) { if ("" + item.Identity == "") { continue; } var db = item.Instance as IDatabase; if (db != null && db.Support(provider)) { return(item.ImplementType); } } var type = TypeX.GetType(provider, true); if (type != null) { XCodeService.Register <IDatabase>(type, provider); } return(type); } else { // 这里的默认值来自于上面Reg里面的最后那个 return(XCodeService.ResolveType <IDatabase>(String.Empty)); } }
/// <summary>建立数据表对象</summary> /// <returns></returns> internal static IDataTable CreateTable() { return(XCodeService.CreateTable()); }
/// <summary>创建指定类型的实体访问器</summary> /// <param name="kind"></param> /// <returns></returns> public static IEntityAccessor Create(EntityAccessorTypes kind) { //return Create(kind); return(XCodeService.Resolve <IEntityAccessor>(kind)); }
/// <summary>创建指定类型的实体访问器</summary> /// <param name="name"></param> /// <returns></returns> public static IEntityAccessor Create(String name) { return(XCodeService.Resolve <IEntityAccessor>(Enum.Parse(typeof(EntityAccessorTypes), name))); }
/// <summary>建立数据表对象</summary> /// <returns></returns> internal static IDataTable CreateTable() => XCodeService.CreateTable();