Example #1
0
        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;
                    }
                }
            }
        }
Example #6
0
 public static void TearDown()
 {
     _dbContext = null;
     Deleter.DeleteAllData();
 }
Example #7
0
 public void Seed(EFMultiTenantDbContext dbContext)
 {
     dbContext.SaveChanges();
 }