private static void SetupTables(ListMapping<IDatabase, IMapping> Mappings, IDatabase Key, Utilities.ORM.Manager.Schema.Default.Database.Database TempDatabase)
 {
     Contract.Requires<NullReferenceException>(Mappings != null, "Mappings");
     foreach (IMapping Mapping in Mappings[Key])
     {
         TempDatabase.AddTable(Mapping.TableName);
         SetupProperties(TempDatabase[Mapping.TableName], Mapping);
     }
 }
 private static void SetupJoiningTablesEnumerable(ListMapping<IDatabase, IMapping> Mappings, IMapping Mapping, IProperty Property, IDatabase Key, Utilities.ORM.Manager.Schema.Default.Database.Database TempDatabase)
 {
     Contract.Requires<ArgumentNullException>(TempDatabase != null, "TempDatabase");
     Contract.Requires<ArgumentNullException>(TempDatabase.Tables != null, "TempDatabase.Tables");
     if (TempDatabase.Tables.FirstOrDefault(x => x.Name == Property.TableName) != null)
         return;
     var MapMapping = Mappings[Key].FirstOrDefault(x => x.ObjectType == Property.Type);
     if (MapMapping == null)
         return;
     if (MapMapping == Mapping)
     {
         TempDatabase.AddTable(Property.TableName);
         TempDatabase[Property.TableName].AddColumn("ID_", DbType.Int32, 0, false, true, true, true, false, "", "", "");
         TempDatabase[Property.TableName].AddColumn(Mapping.TableName + Mapping.IDProperties.First().FieldName,
             Mapping.IDProperties.First().Type.To(DbType.Int32),
             Mapping.IDProperties.First().MaxLength,
             false,
             false,
             false,
             false,
             false,
             Mapping.TableName,
             Mapping.IDProperties.First().FieldName,
             "",
             false,
             false,
             false);
         TempDatabase[Property.TableName].AddColumn(MapMapping.TableName + MapMapping.IDProperties.First().FieldName + "2",
             MapMapping.IDProperties.First().Type.To(DbType.Int32),
             MapMapping.IDProperties.First().MaxLength,
             false,
             false,
             false,
             false,
             false,
             MapMapping.TableName,
             MapMapping.IDProperties.First().FieldName,
             "",
             false,
             false,
             false);
     }
     else
     {
         TempDatabase.AddTable(Property.TableName);
         TempDatabase[Property.TableName].AddColumn("ID_", DbType.Int32, 0, false, true, true, true, false, "", "", "");
         TempDatabase[Property.TableName].AddColumn(Mapping.TableName + Mapping.IDProperties.First().FieldName,
             Mapping.IDProperties.First().Type.To(DbType.Int32),
             Mapping.IDProperties.First().MaxLength,
             false,
             false,
             false,
             false,
             false,
             Mapping.TableName,
             Mapping.IDProperties.First().FieldName,
             "",
             true,
             false,
             false);
         TempDatabase[Property.TableName].AddColumn(MapMapping.TableName + MapMapping.IDProperties.First().FieldName,
             MapMapping.IDProperties.First().Type.To(DbType.Int32),
             MapMapping.IDProperties.First().MaxLength,
             false,
             false,
             false,
             false,
             false,
             MapMapping.TableName,
             MapMapping.IDProperties.First().FieldName,
             "",
             true,
             false,
             false);
     }
 }