public void DMDBT_DropDatabase() { //以下代码不能运行,会提示数据库正在被使用 using (var context = new DbMigrationContext(DbSetting.FindOrCreate("Test_TestingDataBase"))) { //context.HistoryRepository = new DbHistoryRepository(); context.RunDataLossOperation = DataLossOperation.All; if (context.DatabaseExists() && !(context.DbVersionProvider is EmbadedDbVersionProvider)) { //context.DeleteDatabase(); var database = new DestinationDatabase("Test_TestingDataBase") { Removed = true }; context.MigrateTo(database); //历史记录 var histories = context.GetHistories(); Assert.IsTrue(histories[0] is DropDatabase); //数据库结构 Assert.IsTrue(!context.DatabaseExists()); } context.ResetHistory(); } }
public void DMDBT_CreateDatabase() { using (var context = new DbMigrationContext(DbSetting.FindOrCreate("Test_TestingDataBase"))) { //context.HistoryRepository = new HistoryRepository(); context.RunDataLossOperation = DataLossOperation.All; if (!context.DatabaseExists()) { var destination = new DestinationDatabase("Test_TestingDataBase"); var tmpTable = new Table("TestingTable", destination); tmpTable.AddColumn("Id", DbType.Int32, isPrimaryKey: true); tmpTable.AddColumn("Name", DbType.String); destination.Tables.Add(tmpTable); context.MigrateTo(destination); //历史记录 //var histories = context.GetHistories(); //Assert.IsTrue(histories.Count == 3); //Assert.IsTrue(histories[2] is CreateDatabase); //数据库结构 Assert.IsTrue(context.DatabaseExists()); } } }
public void UtilsTest_Logger_ThreadDbAccessed() { var repo = RF.Concrete <TestUserRepository>(); using (RF.TransactionScope(repo)) { int count = 0; EventHandler <Logger.DbAccessedEventArgs> handler = (o, e) => { if (e.ConnectionSchema == RdbDataProvider.Get(repo).DbSetting) { count++; } }; Logger.ThreadDbAccessed += handler; repo.Save(new TestUser()); Logger.ThreadDbAccessed -= handler; var p = DbSetting.FindOrCreate(UnitTestEntityRepositoryDataProvider.DbSettingName).ProviderName; if (p == DbSetting.Provider_SqlClient) { Assert.IsTrue(count == 1);//sqlServer= 1 } else { Assert.IsTrue(count == 2);//sqlce oracle=2 } } }
private void UnitTestPlugin_RuntimeStarting(object sender, EventArgs e) { var dbSetting = DbSetting.FindOrCreate(UnitTestEntityRepositoryDataProvider.DbSettingName); if (DbSetting.IsOracleProvider(dbSetting)) { OracleBatchImporter.EnableBatchSequence(RF.ResolveInstance <BookRepository>()); OracleBatchImporter.EnableBatchSequence(RF.ResolveInstance <InvoiceRepository>()); } }
public static void GenerateDb() { if (ConfigurationHelper.GetAppSettingOrDefault("单元测试-生成数据库", false)) { using (var c = new RafyDbMigrationContext(DbSettingNames.DbMigrationHistory)) { c.RunDataLossOperation = DataLossOperation.All; c.AutoMigrate(); } using (var c = new RafyDbMigrationContext(DbSettingNames.RafyPlugins)) { c.HistoryRepository = new DbHistoryRepository(); c.RunDataLossOperation = DataLossOperation.All; c.AutoMigrate(); } using (var c = new RafyDbMigrationContext(UnitTestEntityRepositoryDataProvider.DbSettingName)) { c.HistoryRepository = new DbHistoryRepository(); c.RunDataLossOperation = DataLossOperation.All; c.AutoMigrate(); } using (RdbDataProvider.RedirectDbSetting(UnitTestEntityRepositoryDataProvider.DbSettingName, UnitTestEntityRepositoryDataProvider.DbSettingName_Duplicate)) { using (var c = new RafyDbMigrationContext(UnitTestEntityRepositoryDataProvider.DbSettingName_Duplicate)) { c.ClassMetaReader.EntityDbSettingName = UnitTestEntityRepositoryDataProvider.DbSettingName; c.ClassMetaReader.IsGeneratingForeignKey = false; c.HistoryRepository = new DbHistoryRepository(); c.RunDataLossOperation = DataLossOperation.All; c.AutoMigrate(); } } using (var c = new RafyDbMigrationContext(UnitTest2EntityRepositoryDataProvider.DbSettingName)) { c.HistoryRepository = new DbHistoryRepository(); c.RunDataLossOperation = DataLossOperation.All; c.AutoMigrate(); } using (var c = new RafyDbMigrationContext(StringTestEntityDataProvider.DbSettingName)) { c.HistoryRepository = new DbHistoryRepository(); c.RunDataLossOperation = DataLossOperation.All; c.AutoMigrate(); } //启用批量更新 var dbSetting = DbSetting.FindOrCreate(UnitTestEntityRepositoryDataProvider.DbSettingName); if (DbSetting.IsOracleProvider(dbSetting)) { OracleBatchImporter.EnableBatchSequence(RF.ResolveInstance <BookRepository>()); OracleBatchImporter.EnableBatchSequence(RF.ResolveInstance <InvoiceRepository>()); } } }
/// <summary> /// 如果配置文件的给connection加密属性设置为ture,那么程序运行会走这个方法 /// 这个方法通过AES加解密来保护connection不被发现,默认的key是DBEN /// </summary> protected virtual void DecryptConnectionString() { if (ConfigurationHelper.GetAppSettingOrDefault("DBEN.DBI.Data.UseEncryptedConnectionString", false)) { var settingName = RBACPlugin.DbSettingName; // VATEnginePlugin.DbSettingName; var settings = DbSetting.FindOrCreate(settingName); var encriptionStr = settings.ConnectionString; //获取connection var decriptionStr = DescriptAES.AESDecrypt(encriptionStr, "DBEN"); //解密后的connection DbSetting.SetSetting(settingName, decriptionStr, settings.ProviderName); } }
private void UnitTestPlugin_RuntimeStarting(object sender, EventArgs e) { var dbSetting = DbSetting.FindOrCreate(UnitTestEntityRepositoryDataProvider.DbSettingName); if (DbSetting.IsOracleProvider(dbSetting)) { Rafy.Domain.ORM.BatchSubmit.Oracle.OracleBatchImporter.EnableBatchSequence( RF.Concrete <BookRepository>() ); } }
//private void UnitTestPlugin_RuntimeStarting(object sender, EventArgs e) //{ // InitailizeSequences(); //} public static void InitailizeSequences() { var dbSetting = DbSetting.FindOrCreate(UnitTestEntityRepositoryDataProvider.DbSettingName); if (DbSetting.IsOracleProvider(dbSetting)) { OracleBatchImporter.EnableBatchSequence(RF.ResolveInstance <BookCategoryRepository>()); OracleBatchImporter.EnableBatchSequence(RF.ResolveInstance <FolderRepository>()); OracleBatchImporter.EnableBatchSequence(RF.ResolveInstance <BookRepository>()); OracleBatchImporter.EnableBatchSequence(RF.ResolveInstance <InvoiceRepository>()); } }
protected override void ConfigMeta() { Meta.MapTable().MapAllProperties(); Meta.EnableClientCache(100); Meta.EnableServerCache(); var dbSettings = DbSetting.FindOrCreate(UnitTestEntityRepositoryDataProvider.DbSettingName); if (dbSettings.ProviderName == DbSetting.Provider_SQLite) { Meta.DeletingChildrenInMemory = true; } }
public void DMT_AlterColumn_DbType_AutoMigrate() { this.Test(destination => { }, result => { var table = result.FindTable("Task"); var column = table.FindColumn("XmlContent"); Assert.IsTrue(column != null); var p = DbSetting.FindOrCreate(UnitTestEntityRepositoryDataProvider.DbSettingName).ProviderName; Assert.IsTrue(dbTypeConverter.IsCompatible(column.DbType, DbType.Xml)); }); }
/// <summary> /// 配置实体的元数据 /// </summary> protected override void ConfigMeta() { //配置实体的所有属性都映射到数据表中。 Meta.MapTable().MapAllProperties(); //Id 属性不再是主键,主键改为 Name 属性。 var setting = DbSetting.FindOrCreate(UnitTestEntityRepositoryDataProvider.DbSettingName); Meta.Property(Building.NameProperty).MapColumn().IsPrimaryKey(true); var idColumn = Meta.Property(Building.IdProperty).MapColumn().IsPrimaryKey(false); if (DbSetting.IsOracleProvider(setting) || setting.ProviderName.Contains("MySql")) { idColumn.IsIdentity(false); } }
public virtual List <OrganizationNotTree> GetByOrgIdAndUserNameContainChild(long orgId, string userName = "") { FormattedSql sql = new FormattedSql(); var dbSettingName = RBACPlugin.DbSettingName; var dbSetting = DbSetting.FindOrCreate(dbSettingName); if (DbSetting.IsOracleProvider(dbSetting)) { sql = @"select oorg.Id,oorg.Name from T_RBAC_ORGANIZATION oorg LEFT JOIN T_RBAC_OrganizationUser ou on(oorg.id = ou.organizationid and ou.dbi_isphantom = 0) LEFT JOIN T_Users u on(u.id = ou.userid and u.dbi_isphantom = 0) where(oorg.dbi_isphantom = 0 or oorg.dbi_isphantom is null) and oorg.wf_approvalstatus = 300 and oorg.treeindex like (select treeindex || '%' from T_RBAC_ORGANIZATION org where org.id = {0}) "; } else { sql = @"select oorg.Id,oorg.Name from T_RBAC_ORGANIZATION oorg LEFT JOIN T_RBAC_OrganizationUser ou on(oorg.id = ou.organizationid and ou.dbi_isphantom = 0) LEFT JOIN T_Users u on(u.id = ou.userid and u.dbi_isphantom = 0) where(oorg.dbi_isphantom = 0 or oorg.dbi_isphantom is null) and oorg.wf_approvalstatus = 300 and oorg.treeindex like (select treeindex + '%' from T_RBAC_ORGANIZATION org where org.id = {0}) "; } if (!string.IsNullOrEmpty(userName)) { sql.Append(string.Format("and u.username = '******' ", userName)); } sql.Parameters.Add(orgId); LiteDataTable dt = (this.DataQueryer as RdbDataQueryer).QueryTable(sql); List <OrganizationNotTree> result = new List <OrganizationNotTree>(); if (dt != null && dt.Rows.Count > 0) { foreach (var row in dt.Rows) { result.Add(new OrganizationNotTree { Id = Convert.ToInt64(row["Id"]), Name = Convert.ToString(row["Name"]) }); } } return(result); //return (OrganizationList)(this.DataQueryer as RdbDataQueryer).QueryData(sql); }
public void DMT_AlterColumn_DataType() { this.Test(destination => { var taskTable = destination.FindTable("Task"); taskTable.Columns.Remove(taskTable.FindColumn("Name")); taskTable.AddColumn("Name", DbType.Xml); }, result => { var table = result.FindTable("Task"); var column = table.FindColumn("Name"); Assert.IsTrue(column != null); var p = DbSetting.FindOrCreate(UnitTestEntityRepositoryDataProvider.DbSettingName).ProviderName; Assert.IsTrue(DbTypeHelper.IsCompatible(column.DataType, DbType.Xml)); }); }
public static void GenerateDb() { if (ConfigurationHelper.GetAppSettingOrDefault("单元测试-生成数据库", false)) { using (var c = new RafyDbMigrationContext(DbSettingNames.DbMigrationHistory)) { c.RunDataLossOperation = DataLossOperation.All; c.AutoMigrate(); } using (var c = new RafyDbMigrationContext(DbSettingNames.RafyPlugins)) { c.HistoryRepository = new DbHistoryRepository(); c.RunDataLossOperation = DataLossOperation.All; c.AutoMigrate(); } using (var c = new RafyDbMigrationContext(UnitTestEntityRepositoryDataProvider.DbSettingName)) { c.HistoryRepository = new DbHistoryRepository(); c.RunDataLossOperation = DataLossOperation.All; c.AutoMigrate(); } using (var c = new RafyDbMigrationContext(UnitTest2EntityRepositoryDataProvider.DbSettingName)) { c.HistoryRepository = new DbHistoryRepository(); c.RunDataLossOperation = DataLossOperation.All; c.AutoMigrate(); } using (var c = new RafyDbMigrationContext(StringTestEntityDataProvider.DbSettingName)) { c.HistoryRepository = new DbHistoryRepository(); c.RunDataLossOperation = DataLossOperation.All; c.AutoMigrate(); } //启用批量更新 var dbSetting = DbSetting.FindOrCreate(UnitTestEntityRepositoryDataProvider.DbSettingName); if (DbSetting.IsOracleProvider(dbSetting)) { OracleBatchImporter.EnableBatchSequence(RF.Concrete <BookRepository>()); } } }
public void UtilsTest_Logger_DbAccessedCount() { var repo = RF.Concrete <TestUserRepository>(); using (RF.TransactionScope(repo)) { var c1 = Logger.DbAccessedCount; repo.Save(new TestUser()); var p = DbSetting.FindOrCreate(UnitTestEntityRepositoryDataProvider.DbSettingName).ProviderName; if (p == DbSetting.Provider_SqlClient) { Assert.IsTrue(Logger.DbAccessedCount == c1 + 1); } else { Assert.IsTrue(Logger.DbAccessedCount == c1 + 2); } } }
public virtual void Register(ContainerBuilder builder, ITypeFinder typeFinder) { // EntityFramework Repository Context & Repositories var dbset = DbSetting.FindOrCreate("LCL"); var efDataProviderManager = new EfDataProviderManager(dbset); var dataProvider = efDataProviderManager.LoadDataProvider(); dataProvider.InitConnectionFactory(); builder.Register(c => dbset).As <DbSetting>(); builder.Register <LclDbContext>(c => new EFTestContext(dbset.ConnectionString)).As(typeof(IRepositoryContext)).Named <IRepositoryContext>(dbset.Name).InstancePerLifetimeScope(); builder.Register <IRepositoryContext>(c => new EFTestContext(dbset.ConnectionString)).Named <IRepositoryContext>(dbset.Name).InstancePerLifetimeScope(); builder.RegisterType <CategorizationRepository>().As <ICategorizationRepository>().InstancePerLifetimeScope(); builder.RegisterType <CategoryRepository>().As <ICategoryRepository>().InstancePerLifetimeScope(); builder.RegisterType <ProductRepository>().As <IProductRepository>().InstancePerLifetimeScope(); builder.RegisterType <SalesOrderRepository>().As <ISalesOrderRepository>().InstancePerLifetimeScope(); builder.RegisterType <ShoppingCartItemRepository>().As <IShoppingCartItemRepository>().InstancePerLifetimeScope(); builder.RegisterType <ShoppingCartRepository>().As <IShoppingCartRepository>().InstancePerLifetimeScope(); builder.RegisterType <RoleRepository>().As <IRoleRepository>().InstancePerLifetimeScope(); builder.RegisterType <UserRoleRepository>().As <IUserRoleRepository>().InstancePerLifetimeScope(); builder.RegisterType <UserRepository>().As <IUserRepository>().InstancePerLifetimeScope(); // Event Handlers builder.RegisterType <SendEmailHandler>().As <IEventHandler <OrderDispatchedEvent> >().InstancePerLifetimeScope(); builder.RegisterType <SendEmailHandler>().As <IEventHandler <OrderConfirmedEvent> >().InstancePerLifetimeScope(); // Domain Event Handlers builder.RegisterType <GetUserOrdersEvent>().As <IDomainEventHandler <GetUserOrdersEvent> >().InstancePerLifetimeScope(); builder.RegisterType <OrderDispatchedEventHandler>().As <IDomainEventHandler <OrderDispatchedEvent> >().InstancePerLifetimeScope(); builder.RegisterType <OrderConfirmedEventHandler>().As <IDomainEventHandler <OrderConfirmedEvent> >().InstancePerLifetimeScope(); // Event Aggregator // Server builder.RegisterType <OrderService>().As <IOrderService>().InstancePerLifetimeScope(); System.Diagnostics.Debug.WriteLine(Order + " init plugin LCL.Plugin.EasyUI.UCenter"); }
public RafyDbMigrationContext(string dbSetting) : this(DbSetting.FindOrCreate(dbSetting)) { }
/// <summary> /// 通过数据库配置名构造一个 单连接事务块。 /// </summary> /// <param name="dbSetting"></param> /// <returns></returns> public static SingleConnectionTransactionScope TransactionScope(string dbSetting) { return(new SingleConnectionTransactionScope(DbSetting.FindOrCreate(dbSetting))); }
/// <summary> /// 根据配置文件,构造一个数据库访问器。 /// </summary> /// <param name="connectionStringSettingName"></param> /// <returns></returns> public static IDbAccesser Create(string connectionStringSettingName) { var setting = DbSetting.FindOrCreate(connectionStringSettingName); return(Create(setting)); }
public void MT_Transaction_GetCurrentTransactionBlock2() { using (var tranOuter = RF.TransactionScope(DbSettingNames.RafyPlugins)) { using (var tranInner1 = RF.TransactionScope(DbSettingNames.RafyPlugins)) { using (var tranInner2 = RF.TransactionScope(DbSettingNames.RafyPlugins)) { var currentScope = LocalTransactionBlock.GetCurrentTransactionBlock(DbSetting.FindOrCreate(DbSettingNames.RafyPlugins)); Assert.AreEqual(currentScope, tranInner2); } } } }
private static bool IsTestDbSQLite() { var dbSettings = DbSetting.FindOrCreate(BackUpDbSettingName); return(dbSettings.ProviderName == DbSetting.Provider_SQLite); }
/// <summary> /// 根据配置文件,构造一个数据库访问器。 /// </summary> /// <param name="dbSettingName">数据库配置的名称。</param> /// <returns></returns> public static IDbAccesser Create(string dbSettingName) { var setting = DbSetting.FindOrCreate(dbSettingName); return(Create(setting)); }
internal static bool IsTestDbSQLite() { var dbSettings = DbSetting.FindOrCreate(UnitTestEntityRepositoryDataProvider.DbSettingName); return(dbSettings.ProviderName == DbSetting.Provider_SQLite); }