public static IStructureBuilder GetBuilderForInsertsAssigningIfMissingId(IStructureBuilders builders, IStructureSchema schema, IDbClient dbClient) { Ensure.That(builders, "builders").IsNotNull(); Ensure.That(schema, "schema").IsNotNull(); Ensure.That(dbClient, "dbClient").IsNotNull(); IStructureIdGenerator idGenerator; var idType = schema.IdAccessor.IdType; if (idType.IsGuid()) { idGenerator = builders.GuidStructureIdGeneratorFn(schema); } else if (idType.IsIdentity()) { idGenerator = builders.IdentityStructureIdGeneratorFn(schema, dbClient); } else if (idType.IsString()) { idGenerator = new EmptyStructureIdGenerator(); } else { throw new SisoDbException(ExceptionMessages.StructureBuilders_CreateForInsert.Inject(idType, schema.Name)); } return(new StructureBuilderAutoId { StructureIdGenerator = idGenerator, StructureSerializer = builders.StructureSerializerFn() }); }
public StructureBuilderPreservingId() { IndexesFactory = new StructureIndexesFactory(); StructureSerializer = new EmptyStructureSerializer(); StructureIdGenerator = new EmptyStructureIdGenerator(); }