private static IUnitOfWork CreateUow() { var efMultiTenantDbContext = new EFMultiTenantDbContext(); efMultiTenantDbContext.SetTenantId(TenantContext.GetTenant()); return(efMultiTenantDbContext); }
private static List <string> GetAllTables(EFMultiTenantDbContext dbContext) { var query = dbContext.Database.SqlQuery <string>( "select schemas.name + '.' + tables.name from sys.tables join sys.schemas on (schemas.schema_id = tables.schema_id)"); return(query.Except(IgnoredTables).ToList()); }
public void DeleteAllData() { using (var context = new EFMultiTenantDbContext()) { if (_deleteSql == null) { BuildDeleteTables(context); } // System.Console.WriteLine(_deleteSql); context.Database.ExecuteSqlCommand(_deleteSql); } }
private static List <Relationship> GetRelationships(EFMultiTenantDbContext dbContext) { var otherquery = dbContext.Database.SqlQuery <Relationship>( @"select ss_pk.name + '.' + so_pk.name as PrimaryKeyTable, ss_fk.name + '.' + so_fk.name as ForeignKeyTable from sysforeignkeys sfk inner join sys.objects so_pk on sfk.rkeyid = so_pk.object_id inner join sys.schemas ss_pk on so_pk.schema_id = ss_pk.schema_id inner join sys.objects so_fk on sfk.fkeyid = so_fk.object_id inner join sys.schemas ss_fk on so_fk.schema_id = ss_fk.schema_id order by so_pk.name, so_fk.name"); return(otherquery.ToList()); }
private void BuildDeleteTables(EFMultiTenantDbContext dbContext) { if (!_initialized) { lock (LockObj) { if (!_initialized) { var allTables = GetAllTables(dbContext); var allRelationships = GetRelationships(dbContext); _tablesToDelete = BuildTableList(allTables, allRelationships); _deleteSql = BuildTableSql(_tablesToDelete); _initialized = true; } } } }
public static void TearDown() { _dbContext = null; Deleter.DeleteAllData(); }
public void Seed(EFMultiTenantDbContext dbContext) { dbContext.SaveChanges(); }