public override IReadOnlyList <INode> GetNodes(ISqlLoader loader, IGeneratorOption option, MethodInfo mi) { var parameters = BuildHelper.GetParameters(option, mi); var tableName = table ?? (type != null ? BuildHelper.GetTableNameOfType(option, type) : null) ?? BuildHelper.GetTableName(option, mi); if (String.IsNullOrEmpty(tableName)) { throw new BuilderException($"Table name resolve failed. type=[{mi.DeclaringType.FullName}], method=[{mi.Name}]"); } var sql = new StringBuilder(); sql.Append("INSERT INTO "); sql.Append(tableName); sql.Append(" ("); BuildHelper.AddInsertColumns(sql, mi, parameters); sql.Append(") VALUES ("); BuildHelper.AddInsertValues(sql, mi, parameters); sql.Append(")"); var tokenizer = new SqlTokenizer(sql.ToString()); var builder = new NodeBuilder(tokenizer.Tokenize()); return(builder.Build()); }
public override IReadOnlyList <INode> GetNodes(ISqlLoader loader, IGeneratorOption option, MethodInfo mi) { var parameters = BuildHelper.GetParameters(option, mi); var keys = BuildHelper.GetKeyParameters(parameters); var tableName = table ?? (type != null ? BuildHelper.GetTableNameOfType(option, type) : null) ?? BuildHelper.GetTableName(option, mi); var conditions = keys.Count > 0 ? keys : parameters; if (String.IsNullOrEmpty(tableName)) { throw new BuilderException($"Table name resolve failed. type=[{mi.DeclaringType.FullName}], method=[{mi.Name}]"); } if (!Force && (conditions.Count == 0)) { throw new BuilderException($"Delete all requires force option. type=[{mi.DeclaringType.FullName}], method=[{mi.Name}]"); } var sql = new StringBuilder(); sql.Append("DELETE FROM "); sql.Append(tableName); BuildHelper.AddCondition(sql, conditions); var tokenizer = new SqlTokenizer(sql.ToString()); var builder = new NodeBuilder(tokenizer.Tokenize()); return(builder.Build()); }
public override IReadOnlyList <INode> GetNodes(ISqlLoader loader, IGeneratorOption option, MethodInfo mi) { var tokenizer = new SqlTokenizer(sql); var tokens = tokenizer.Tokenize(); var builder = new NodeBuilder(tokens); return(builder.Build()); }
public TestFactoryBuilder SetSql(Action <Dictionary <string, string> > action) { var map = new Dictionary <string, string>(); action(map); loader = new MapLoader(map); return(this); }
public DefaultDbSchemaReader( IDbProviderManager dbProviderManager, ISqlLoader sqlLoader, IObjectMapper objectMapper) { _dbProviderManager = dbProviderManager; _sqlLoader = sqlLoader; _objectMapper = objectMapper; Logger = NullLogger <DefaultDbSchemaReader> .Instance; }
public override IReadOnlyList <INode> GetNodes(ISqlLoader loader, IGeneratorOption option, MethodInfo mi) { var nodes = new List <INode> { new SqlNode(procedure) }; nodes.AddRange(BuildHelper.GetParameters(option, mi).Select(x => new ParameterNode(x.Name, x.ParameterName))); return(nodes); }
public override IReadOnlyList <INode> GetNodes(ISqlLoader loader, IGeneratorOption option, MethodInfo mi) { var tableName = table ?? BuildHelper.GetTableNameOfType(option, type); if (String.IsNullOrEmpty(tableName)) { throw new BuilderException($"Table name resolve failed. type=[{mi.DeclaringType.FullName}], method=[{mi.Name}]"); } return(new[] { new SqlNode($"TRUNCATE TABLE {tableName}") }); }
public override IReadOnlyList <INode> GetNodes(ISqlLoader loader, IGeneratorOption option, MethodInfo mi) { var parameters = BuildHelper.GetParameters(option, mi); var order = BuildHelper.PickParameter <OrderAttribute>(parameters); var tableName = table ?? (type != null ? BuildHelper.GetTableNameOfType(option, type) : null) ?? BuildHelper.GetReturnTableName(option, mi); if (String.IsNullOrEmpty(tableName)) { throw new BuilderException($"Table name resolve failed. type=[{mi.DeclaringType.FullName}], method=[{mi.Name}]"); } var sql = new StringBuilder(); sql.Append("SELECT * FROM "); sql.Append(tableName); BuildHelper.AddCondition(sql, parameters); if (order != null) { sql.Append(" ORDER BY "); sql.Append($"/*# {order.Name} */dummy"); } else if (!String.IsNullOrEmpty(Order)) { sql.Append(" ORDER BY "); sql.Append(Order); } else { var columns = BuildHelper.MakeKeyColumns(option, mi.ReturnType); if (!String.IsNullOrEmpty(columns)) { sql.Append(" ORDER BY "); sql.Append(columns); } } var tokenizer = new SqlTokenizer(sql.ToString()); var builder = new NodeBuilder(tokenizer.Tokenize()); return(builder.Build()); }
public override IReadOnlyList <INode> GetNodes(ISqlLoader loader, IGeneratorOption option, MethodInfo mi) { var parameters = BuildHelper.GetParameters(option, mi); var tableName = table ?? BuildHelper.GetTableNameOfType(option, type); if (String.IsNullOrEmpty(tableName)) { throw new BuilderException($"Table name resolve failed. type=[{mi.DeclaringType.FullName}], method=[{mi.Name}]"); } var sql = new StringBuilder(); sql.Append("SELECT "); sql.Append(field); sql.Append(" FROM "); sql.Append(tableName); BuildHelper.AddCondition(sql, parameters); var tokenizer = new SqlTokenizer(sql.ToString()); var builder = new NodeBuilder(tokenizer.Tokenize()); return(builder.Build()); }
public TestFactoryBuilder SetSql(string sql) { loader = new ConstLoader(sql); return(this); }
public SqlLoader_Tests() { _sqlLoader = GetRequiredService <ISqlLoader>(); }
public TestFactory(ISqlLoader loader, IGeneratorOption option, ExecuteEngine engine) { this.loader = loader; this.option = option; Engine = engine; }
public abstract IReadOnlyList <INode> GetNodes(ISqlLoader loader, IGeneratorOption option, MethodInfo mi);
public DataAccessorGenerator(ISqlLoader sqlLoader, ISourceWriter sourceWriter, IGeneratorOption option) { this.sqlLoader = sqlLoader; this.sourceWriter = sourceWriter; this.option = option; }