/// <summary> /// 初始化一个<see cref="FromClause"/>类型的实例 /// </summary> /// <param name="builder">Sql生成器</param> /// <param name="dialect">Sql方言</param> /// <param name="resolver">实体解析器</param> /// <param name="register">实体别名注册器</param> /// <param name="tableDatabase">表数据库</param> /// <param name="table">表</param> public SqliteFromClause(ISqlBuilder builder , IDialect dialect , IEntityResolver resolver , IEntityAliasRegister register , ITableDatabase tableDatabase , SqlItem table = null) : base(builder, dialect, resolver, register, tableDatabase, table) { }
/// <summary> /// 添加到From子句 /// </summary> /// <param name="sql">Sql语句</param> public void AppendSql(string sql) { if (Table != null && Table.Raw) { Table.Name += sql; return; } Table = new SqlItem(sql, raw: true); }
/// <summary> /// 设置表名 /// </summary> /// <typeparam name="TEntity">实体类型</typeparam> /// <param name="alias">别名</param> /// <param name="schema">架构名</param> public void From <TEntity>(string alias = null, string schema = null) where TEntity : class { var type = typeof(TEntity); var table = Resolver.GetTableAndSchema(type); Table = CreateSqlItem(table, schema, alias); Register.Register(type, Resolver.GetAlias(type, alias)); Register.FromType = type; }
/// <summary> /// 添加到From子句 /// </summary> /// <param name="sql">Sql语句</param> public void AppendSql(string sql) { if (_item != null && _item.Raw) { _item.Name += sql; return; } _item = new SqlItem(sql, raw: true); }
/// <summary> /// 初始化From子句 /// </summary> /// <param name="builder">Sql生成器</param> /// <param name="dialect">方言</param> /// <param name="resolver">实体解析器</param> /// <param name="register">实体别名注册器</param> /// <param name="tableDatabase">表数据库</param> /// <param name="table">表</param> public FromClause(ISqlBuilder builder, IDialect dialect, IEntityResolver resolver, IEntityAliasRegister register, ITableDatabase tableDatabase, SqlItem table = null) { Builder = builder; Dialect = dialect; Resolver = resolver; Register = register; TableDatabase = tableDatabase; Table = table; }
public SqlItem CreateItem([FromBody] SqlItem sqlItem) { RequireNonNull(sqlItem); RequireFieldNonBlank(sqlItem.Content, nameof(sqlItem.Content)); // TODO // 暂时没开始做用户登录之类的管理功能 // 所以创建人这里暂时不实现 SqlService.Insert(sqlItem); return(sqlItem); }
/// <summary> /// 获取列名列表 /// </summary> /// <param name="dialect">Sql方言</param> /// <param name="register">实体别名注册器</param> public string ToSql(IDialect dialect, IEntityAliasRegister register) { if (Raw || IsAggregation) { return(dialect.GetColumn(Name, dialect.GetSafeName(ColumnAlias))); } var result = new SqlItem(Name, GetTableAlias(register), ColumnAlias, isResolve: false); return(result.ToSql(dialect)); }
public int Execute(SqlItem sql) { using (var conn = new SqlConnection("")) { conn.Open(); using (var command = new SqlCommand(sql.Body, conn)) { return(command.ExecuteNonQuery()); } } }
public int ExecuteNonQuery(SqlItem sqlItem) { using (var connection = new MySqlConnection(DatabaseItem.ConnectionString)) { connection.Open(); using (var command = new MySqlCommand(sqlItem.Content, connection)) { return((sqlItem.RecordsAffected = command.ExecuteNonQuery()).Value); } } }
public static string GetMappedStaticSql(string sqlName) { SqlItem item = GetMappedStatement(sqlName); if (item == null) { return(sqlName); } return(item.dynamic(null)); }
private static string ParseDynamicSql(string mapSql, IDictionary <string, object> p, IDictionary <string, string> where) { SqlItem info = StatementParser.GetMappedStatement(mapSql); if (info == null) { return(mapSql); } return(info.dynamic(p));//会修改参数p的列表 }
public void TestColumnResolver() { var sqlItem = new SqlItem { DatabaseId = 1, Created = DateTime.Now, CreaterId = 1, Content = "select 1" }; var sqlService = new SqlService(null); sqlService.Insert(sqlItem); }
/// <summary> /// 批量转换输出显示条目到sql语句 /// </summary> /// <param name="strings"></param> /// <returns></returns> private List <String> ConvertStrings2Sqls(String[] strings) { List <String> result = new List <String>(); foreach (var dispStr in strings) { if (dispStr == "") { continue; } SqlItem sqlItem = GetSqlItemFromDisplayedString(dispStr); result.Add(sqlItem.SqlString); } return(result); }
public SqlItem Add2(string shopname, string itemname, double quantity) { SqlShop shop = Context.SqlShops.Where(x => x.Name.ToLower() == shopname.ToLower()).OrderBy(x => x.ShopID).LastOrDefault(); SqlItem item = new SqlItem() { ShopID = shop.ShopID, Name = itemname, Quantity = quantity }; Context.SqlItems.Add(item); Context.SaveChanges(); return(item); }
public IHttpActionResult PostSqlItem(SqlItem sqlItem) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } sqlItem.ID = db.SqlItems.Any() ? db.SqlItems.Max(i => i.ID) + 1 : 1; sqlItem.Record = 0; sqlItem.Message = string.Empty; sqlItem.Creater = User; sqlItem.Created = DateTime.Now; db.SqlItems.Add(sqlItem); db.SaveChanges(); return(CreatedAtRoute("DefaultApi", new { id = sqlItem.ID }, sqlItem)); }
public object GetCurrentUserProfiles(string parameter) { var userID = GetCurrentUserID(null); if (string.IsNullOrEmpty(userID.ToString())) { "UserProfiles".Log("当前用户未登录或已超时"); return(""); } var sessionID = string.Format("UserProfiles_{0}", userID); var oldValue = HttpContext.Current.Session[sessionID]; if (oldValue != null && oldValue is RowEntity) { var userItem = oldValue as RowEntity; return(userItem.GetValue(parameter, null)); } SqlItem sqlitem = SqlData.Current.GetShare(SqlGetProfiles); if (sqlitem == null) { throw new Exception(string.Format("还未设置取用户属性的查询[{0}]", SqlGetProfiles)); } var item = sqlitem.ExecuteQuery <RowEntity>("UserID", GetCurrentUserID(null)).FirstOrDefault(); if (item == null) { "UserProfiles".Log("查询用户属性为空"); return(""); } HttpContext.Current.Session[sessionID] = item; return(item.GetValue(parameter, null)); }
private static DirectedGraph BuildGraph(Dictionary<string, string> allDbObjTypes, Tuple<string, string, string>[] allDependencies) { var graph = new AdjacencyGraph<SqlItem, Edge<SqlItem>>(); foreach (var item in allDependencies) { string objType1, objType2; objType1 = allDbObjTypes.TryGetValue(item.Item1, out objType1) ? objType1 : "Unknown"; objType2 = allDbObjTypes.TryGetValue(item.Item2, out objType2) ? objType2 : "Unknown"; SqlItem sqlItem1 = new SqlItem(item.Item1, objType1); SqlItem sqlItem2 = new SqlItem(item.Item2, objType2); Edge<SqlItem> newEdge = new Edge<SqlItem>(sqlItem1, sqlItem2); graph.AddVerticesAndEdge(newEdge); } foreach (string item in allDbObjTypes.Values.Distinct()) { Console.WriteLine(item); } var graphToDirectedGraphML = graph.ToDirectedGraphML(vertex => vertex.Name, ege => string.Empty, (sqI, dgn) => { dgn.TypeName = GetShortSqlTypeName(sqI.SqlType); }, (eqi, dgl) => { }); return graphToDirectedGraphML; }