コード例 #1
0
        public StringBuilder BuildSqlScript(Dictionary <string, int> entitiesToCreate)
        {
            try
            {
                foreach (var entityToCreate in entitiesToCreate)
                {
                    EntityQueue.Enqueue(entityToCreate.Key);
                }

                int enqueueCounter = 0;
                while (EntityQueue.Count > 0)
                {
                    string entityName = EntityQueue.Dequeue();
                    int    count      = entitiesToCreate[entityName];

                    using (EntityModel originEntity = GetEmptyEntity(entityName))
                    {
                        for (int i = 0; i < count; i++)
                        {
                            var entity = originEntity.Copy();

                            if (!SetAllValues(entity) && enqueueCounter <= EntityQueue.Count)
                            {
                                EntityQueue.Enqueue(entityName);
                                enqueueCounter++;
                                break;
                            }
                            else
                            {
                                var sqlExpression = CreateEntitySql(entity);
                                CreatedEntities.Add(entity);

                                sqlBuilder.Append(sqlExpression);
                                sqlBuilder.Append(Environment.NewLine);

                                if (i == count - 1)
                                {
                                    enqueueCounter = 0;
                                }
                            }
                        }
                    }
                }

                return(sqlBuilder.Append(sqlEndPart));
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }