Пример #1
0
 public DatabaseExistenceState AnyModelTableExists(
     InternalContext internalContext)
 {
     if (!internalContext.DatabaseOperations.Exists(internalContext.Connection, internalContext.CommandTimeout, new Lazy <StoreItemCollection>((Func <StoreItemCollection>)(() => DatabaseTableChecker.CreateStoreItemCollection(internalContext)))))
     {
         return(DatabaseExistenceState.DoesNotExist);
     }
     using (ClonedObjectContext contextForDdlOps = internalContext.CreateObjectContextForDdlOps())
     {
         try
         {
             if (internalContext.CodeFirstModel == null)
             {
                 return(DatabaseExistenceState.Exists);
             }
             TableExistenceChecker service = DbConfiguration.DependencyResolver.GetService <TableExistenceChecker>((object)internalContext.ProviderName);
             if (service == null)
             {
                 return(DatabaseExistenceState.Exists);
             }
             List <EntitySet> list = this.GetModelTables(internalContext).ToList <EntitySet>();
             if (!list.Any <EntitySet>() || this.QueryForTableExistence(service, contextForDdlOps, list))
             {
                 return(DatabaseExistenceState.Exists);
             }
             return(internalContext.HasHistoryTableEntry() ? DatabaseExistenceState.Exists : DatabaseExistenceState.ExistsConsideredEmpty);
         }
         catch (Exception ex)
         {
             return(DatabaseExistenceState.Exists);
         }
     }
 }
Пример #2
0
 public virtual bool QueryForTableExistence(
     TableExistenceChecker checker,
     ClonedObjectContext clonedObjectContext,
     List <EntitySet> modelTables)
 {
     using (new TransactionScope(TransactionScopeOption.Suppress))
     {
         if (checker.AnyModelTableExistsInDatabase((ObjectContext)clonedObjectContext.ObjectContext, clonedObjectContext.Connection, (IEnumerable <EntitySet>)modelTables, "EdmMetadata"))
         {
             return(true);
         }
     }
     return(false);
 }