public void GetFieldsOrderedByIndex_WhenPlainAndUniquesExistsInSchema_FieldsAreReturnedInCorrectOrder() { var structureSchema = CreateStructureSchemaFakeWithPlainAndUniques(); var structureStorageSchema = new StructureStorageSchema(structureSchema, "foo"); var fieldsByIndex = structureStorageSchema.GetFieldsOrderedByIndex().ToList(); Assert.AreEqual(2, fieldsByIndex.Count); Assert.AreEqual(0, fieldsByIndex[0].Ordinal); Assert.AreEqual(StructureStorageSchema.Fields.Id.Name, fieldsByIndex[0].Name); Assert.AreEqual(1, fieldsByIndex[1].Ordinal); Assert.AreEqual(StructureStorageSchema.Fields.Json.Name, fieldsByIndex[1].Name); }
protected virtual void BulkInsertStructures(IStructureSchema structureSchema, IStructure[] structures) { if (!structures.Any()) return; var structureStorageSchema = new StructureStorageSchema(structureSchema, structureSchema.GetStructureTableName()); using (var structuresReader = new StructuresReader(structureStorageSchema, structures)) { using (var bulkInserter = MainDbClient.GetBulkCopy()) { bulkInserter.DestinationTableName = structuresReader.StorageSchema.Name; bulkInserter.BatchSize = structures.Length; var fields = structuresReader.StorageSchema.GetFieldsOrderedByIndex().Where(f => !f.Equals(StructureStorageSchema.Fields.RowId)).ToArray(); foreach (var field in fields) bulkInserter.AddColumnMapping(field.Name, field.Name); bulkInserter.Write(structuresReader); } } }