public List <T> Query <T>(SqlCondition condition) { EntityBase entity = EntityManager.GetEntity(condition.ConnectionName, condition.TableName); if (entity == null) { throw new Exception("Invalid connection or table."); } List <string> attrList = new List <string>(); foreach (var attr in entity.Attributes.Keys) { if ((condition.FilterWay == FilterWay.FilterOut && !condition.FilterColumns.Contains(attr)) || (condition.FilterWay == FilterWay.Keep && condition.FilterColumns.Count == 0) || (condition.FilterWay == FilterWay.Keep && condition.FilterColumns.Contains(attr))) { attrList.Add(attr); } } string sqlTemplate = "SELECT {0} FROM {1}"; string sqlText = string.Format(sqlTemplate, string.Join(",", attrList), condition.TableName); if (condition.Expression != null) { sqlText += condition.Expression.GenerateSqlText(); } if (condition.OrderColumns != null && condition.OrderColumns.Count > 0) { sqlText = sqlText + string.Format(" ORDER BY {0} ", string.Join(",", condition.OrderColumns)) + condition.OrderBy.ToString(); } string connStr = SqlServerConnectionProvider.Instance.GetConnectionString(condition.ConnectionName); return(SqlServerBaseOrder.ExecuteReader <T>(connStr, sqlText)); }
public Dictionary <string, EntityBase> QueryEntityDic(string connectionName = null) { Dictionary <string, EntityBase> dic = new Dictionary <string, EntityBase>(); List <EntityBase> entities = SqlServerBaseOrder.ExecuteReader <EntityBase>(SqlServerConnectionProvider.Instance.GetConnectionString(connectionName), "SELECT * FROM EntityBase"); List <EntityAttributeBase> attributes = SqlServerBaseOrder.ExecuteReader <EntityAttributeBase>(SqlServerConnectionProvider.Instance.GetConnectionString(connectionName), "SELECT * FROM EntityAttributeBase"); foreach (EntityBase entity in entities) { if (!dic.ContainsKey(entity.EntityName)) { foreach (EntityAttributeBase attr in attributes) { if (string.Equals(entity.Id, attr.EntityId)) { entity.Attributes.Add(attr.AttributeName, attr); } } dic.Add(entity.EntityName, entity); } } return(dic); }