Exemplo n.º 1
0
        private void SetTablesFromBlittableArray(List <SqlMigrationImportOperation.SqlMigrationTable> tablesToWrite, SqlTable parentTable = null)
        {
            foreach (var item in tablesToWrite)
            {
                SqlTable table;

                if (parentTable != null)
                {
                    table = new SqlEmbeddedTable(item.Name, item.Query, this, item.NewName, parentTable.Name);
                    parentTable.EmbeddedTables.Add((SqlEmbeddedTable)table);
                    EmbeddedTables.Add((SqlEmbeddedTable)table);
                }
                else
                {
                    table = new SqlParentTable(item.Name, item.Query, this, item.NewName, item.Patch);
                    ParentTables.Add((SqlParentTable)table);
                }

                if (item.EmbeddedTables != null)
                {
                    SetTablesFromBlittableArray(item.EmbeddedTables, table);
                }
            }
        }
        private static SqlReader GetChildReader(SqlTable parentTable, List <string> childColumns, SqlEmbeddedTable childTable, List <string> parentValues)
        {
            if (childColumns.Count > parentTable.PrimaryKeys.Count || parentTable.IsEmbedded)
            {
                // This happens in a case when we can not iterate the embedded table only once and have to use multiple queries.
                return(childTable.GetReaderWhere(parentValues));
            }

            return(childTable.GetReader());
        }