Example #1
0
 public InsertCommandContext(SchemaMetaData schemaMetaData, ParameterContext parameterContext, InsertCommand insertCommand) : base(insertCommand)
 {
     _tablesContext       = new TablesContext(insertCommand.Table);
     _columnNames         = insertCommand.UseDefaultColumns() ? schemaMetaData.GetAllColumnNames(insertCommand.Table.GetTableName().GetIdentifier().GetValue()) : insertCommand.GetColumnNames();
     _insertValueContexts = GetInsertValueContexts(parameterContext);
     _generatedKeyContext = new GeneratedKeyContextEngine(schemaMetaData).CreateGenerateKeyContext(parameterContext, insertCommand);
 }
        private void AppendGeneratedKeyCondition(GeneratedKeyContext generatedKey, string tableName,
                                                 ICollection <ShardingCondition> shardingConditions)
        {
            var enumerator = generatedKey.GetGeneratedValues().GetEnumerator();

            foreach (var shardingCondition in shardingConditions)
            {
                shardingCondition.RouteValues.Add(new ListRouteValue(generatedKey.GetColumnName(),
                                                                     tableName, new List <IComparable>()
                {
                    enumerator.Next()
                }));
            }
        }