private void tbtnTest_Click(object sender, EventArgs e) { var item = lstProvider.SelectedItems[0]; var provider = ProviderHelper.GetDefinedProviderInstance(item.Group); if (provider == null) { MessageBoxHelper.ShowError(string.Format("没有发现 {0} 的数据库适配器。", item.Group)); } using (var db = new Fireasy.Data.Database(item.Cells[1].Value.ToString(), provider)) { try { var exp = db.TryConnect(); if (exp == null) { MessageBoxHelper.ShowInformation(string.Format("{0} 连接成功。", item.Text)); } else { throw exp; } } catch (Exception exp) { MessageBoxHelper.ShowError(string.Format("{0} 连接失败。详细信息如下:\n\n{1}", item.Text, exp.Message)); } } }
/// <summary> /// 尝试从配置文件中配置 <see cref="EntityContextOptions"/> 实例。 /// </summary> /// <param name="options"></param> protected virtual void TryPaserInstanceSetting(EntityContextOptions options) { if (options.Provider == null && options.ConnectionString == null) { var section = ConfigurationUnity.GetSection <InstanceConfigurationSection>(); if (section != null) { IInstanceConfigurationSetting setting; if (!string.IsNullOrEmpty(options.ConfigName)) { setting = section.Settings[options.ConfigName]; } else { setting = section.Default; } if (setting != null) { options.Provider = ProviderHelper.GetDefinedProviderInstance(setting); options.ConnectionString = setting.ConnectionString; } } } }
public void GetSupportedProvidersTest() { foreach (var name in ProviderHelper.GetSupportedProviders()) { Console.WriteLine(name); var provider = ProviderHelper.GetDefinedProviderInstance(name); Assert.IsNotNull(provider); } }
private List <Table> GetDbSchema(IList <Table> tables, TableSchemaProcessHandler processHandler) { var result = new List <Table>(); var provider = ProviderHelper.GetDefinedProviderInstance(con.Type); using (var db = new Fireasy.Data.Database(con.ConnectionString, provider)) { var providerName = db.Provider.GetType().Name; var schema = db.Provider.GetService <Schema.ISchemaProvider>(); var foreignKeys = schema.GetSchemas <Schema.ForeignKey>(db).ToList(); var dbTypes = schema.GetSchemas <Schema.DataType>(db).ToList(); var tableCount = tables.Count; var index = 0; var calc = new Func <int, int>(i => { return((int)((i / (tableCount * 1.0)) * 100)); }); var host = new Host(); foreach (var t in tables) { if (Processor.IsCancellationRequested()) { return(null); } if (processHandler != null) { processHandler.Invoke(t.Name, calc(++index)); } if (t.IsView) { var columns = schema.GetSchemas <Schema.ViewColumn>(db, s => s.ViewName == t.Name); t.Columns.AddRange(ConvertSchemaViewColumns(t, columns, dbTypes, providerName)); result.Add(t); } else { var columns = schema.GetSchemas <Schema.Column>(db, s => s.TableName == t.Name); t.Columns.AddRange(ConvertSchemaColumns(t, columns, dbTypes, providerName)); result.Add(t); } host.Attach(t); } ProcessForeignKeys(result, foreignKeys); } return(result); }
/// <summary> /// 初始化。 /// </summary> private void Initialize(EntityContextOptions options) { Guard.ArgumentNull(options, nameof(options)); EntityContextInitializeContext initContext = null; if (options.ContextFactory != null) { initContext = options.ContextFactory(); } else { var section = ConfigurationUnity.GetSection <InstanceConfigurationSection>(); if (section != null) { IInstanceConfigurationSetting setting; if (!string.IsNullOrEmpty(options.ConfigName)) { setting = section.Settings[options.ConfigName]; } else { setting = section.Default; } initContext = new EntityContextInitializeContext(options, ProviderHelper.GetDefinedProviderInstance(setting), setting.ConnectionString); } } if (initContext == null || initContext.Provider == null) { throw new InvalidOperationException(SR.GetString(SRKind.MustAssignEntityContextInitializeContext)); } initContext.Options = options; var provider = initContext.Provider.GetService <IContextProvider>(); service = provider.CreateContextService(initContext); if (service != null) { service.OnRespositoryChanged = OnRespositoryChanged; } }
private void btnTest_Click(object sender, EventArgs e) { errorProvider1.Clear(); if (txtConnStr.Text.Trim() == string.Empty) { errorProvider1.SetError(txtConnStr, "请输入数据库连接字符串"); return; } var sourceName = txtName.Text; if (string.IsNullOrEmpty(sourceName)) { sourceName = "未命名"; } var provider = ProviderHelper.GetDefinedProviderInstance(Current.Type); if (provider == null) { MessageBoxHelper.ShowError(string.Format("没有发现 {0} 的数据库适配器。", Current.Type)); } using (var db = new Fireasy.Data.Database(txtConnStr.Text, provider)) { try { var exp = db.TryConnect(); if (exp == null) { MessageBoxHelper.ShowInformation(string.Format("{0} 连接成功。", sourceName)); } else { throw exp; } } catch (Exception exp) { MessageBoxHelper.ShowError(string.Format("{0} 连接失败。详细信息如下:\n\n{1}", sourceName, exp.Message)); } } }
private IEnumerable <Table> OpenDb() { try { var provider = ProviderHelper.GetDefinedProviderInstance(con.Type); using (var db = new Fireasy.Data.Database(con.ConnectionString, provider)) { var schemaName = db.Provider.GetConnectionParameter(db.ConnectionString).Schema; var schema = db.Provider.GetService <Schema.ISchemaProvider>(); var tables = schema.GetSchemas <Schema.Table>(db, s => s.Schema == schemaName); return(ConvertSchemaTables(tables)); } } catch (Exception exp) { ErrorMessageBox.Show("获取数据架构时出错。", exp); return(null); } }
private IEnumerable <Table> OpenDb(SourceOption option) { try { var provider = ProviderHelper.GetDefinedProviderInstance(con.Type); using (var db = new Fireasy.Data.Database(con.ConnectionString, provider)) { var schema = db.Provider.GetService <Schema.ISchemaProvider>(); var tables = schema.GetSchemas <Schema.Table>(db).ToList(); var views = option.View ? schema.GetSchemas <Schema.View>(db).ToList() : new List <Schema.View>(); return(ConvertSchemaTables(tables, views)); } } catch (Exception exp) { ErrorMessageBox.Show("获取数据架构时出错。", exp); return(null); } }
public void GetDefinedProviderInstanceTest() { Assert.IsNotNull(ProviderHelper.GetDefinedProviderInstance("MsSql")); }
/// <summary> /// 获取 IProvidre,如果没有 setting,则获取预定义类别的 IProvider 单例。 /// </summary> /// <param name="setting">数据库实例配置对象。</param> /// <param name="providerSetting">提供者配置对象。</param> /// <returns>一个提供者对象。</returns> private static IProvider GetProvider(IInstanceConfigurationSetting setting, ProviderConfigurationSetting providerSetting) { var providerName = providerSetting != null ? providerSetting.Name : setting.ProviderType; return(ProviderHelper.GetDefinedProviderInstance(providerName)); }