public virtual List <Query> GetInsertQuery(params T[] models) { var insertQuery = new Query(tableSchema.TableName); insertQuery.AsInsert( tableSchema.InsertColumns, models.Select(model => tableSchema.InsertPart(model))); return(new List <Query> { insertQuery }); }
public override List <Query> GetInsertQuery(Guid tenantId, params VoucherEntry[] entities) { var voucherEntryQuery = new Query(tableSchema.TableName); var voucherDetailQuery = new Query(voucherDetailSchema.TableName); var voucherEntryDestructuredObjects = entities.Select(model => tableSchema.InsertPart(model)).ToList(); voucherEntryDestructuredObjects.ForEach(objectArr => objectArr.Insert(0, tenantId)); voucherEntryQuery.AsInsert( tableSchema.InsertColumns, voucherEntryDestructuredObjects ); var voucherDetailDestructuredObjects = entities .SelectMany(voucherEntry => voucherEntry .VoucherDetails .Select(voucherDetail => voucherDetailSchema.InsertPart(voucherDetail))) .ToList(); voucherDetailDestructuredObjects.ForEach(objectArr => objectArr.Insert(0, tenantId)); voucherDetailQuery.AsInsert( voucherDetailSchema.InsertColumns, voucherDetailDestructuredObjects ); return(new List <Query> { voucherEntryQuery, voucherDetailQuery }); }