public void Insert(DataContext context, TableTypeRelationship relationship) //TODO: Fix: Executes only first command, other ignored { var command = _insertCommands.ContainsKey(context.Name) ? _insertCommands[context.Name] : null; foreach (var row in context) { if (command == null) { var commandStringBuilder = new StringBuilder($"INSERT INTO {context.Name} ("); BuildNames(commandStringBuilder, row.Value, name => name, ")"); commandStringBuilder.Append(" VALUES ("); BuildNames(commandStringBuilder, row.Value, name => $"@{name}", ")"); commandStringBuilder.Append($" RETURNING {relationship.Id}"); command = new NpgsqlCommand(commandStringBuilder.ToString() , _transaction.NpgsqlConnection); } foreach (var field in row.Value) { command.Parameters.AddWithValue(field.Value.Name, field.Value.Value ?? DBNull.Value); } _transaction.CurrentTransaction.CommandBuilder.AppendQuery(command); } }
public void RegisterRelationship <T>(TableTypeRelationship tableRelationship) => _relationshipRegistry.Register <T>(tableRelationship);
public void RegisterRelationship(Type type, TableTypeRelationship tableRelationship) => _relationshipRegistry.Register(type, tableRelationship);