using System; using System.Collections.Generic; using System.Data; using Easy4net.Context; namespace Easy4net.Common { /// /// 数据库表信息实体类 /// public class TableInfo { /// /// 数据库表名 /// private string tableName; /// /// 主键生成方式 /// private int strategy; /// /// 主键信息 /// private IdInfo id = new IdInfo(); /// /// 普通字段信息集合 /// private ColumnInfo columns = new ColumnInfo(); /// /// 属性到字段信息的映射集合 /// private Map propToColumn = new Map(); /// /// 字段信息到属性的映射集合 /// private Map columnToProp = new Map(); /// /// 是否不具备自增长键 /// public bool NoAutomaticKey { get; set; } /// /// 数据库表名 /// public string TableName { get { return tableName; } set { tableName = value; } } /// /// 主键生成方式,参考GenerationType定义 /// public int Strategy { get { return strategy; } set { strategy = value; } } /// /// 主键字段信息 /// public IdInfo Id { get { return id; } set { id = value; } } /// /// 普通字段信息集合 /// public ColumnInfo Columns { get { return columns; } set { columns = value; } } /// /// 实体类属性对应字段信息映射集合 /// public Map PropToColumn { get { return propToColumn; } set { propToColumn = value; } } /// /// 字段信息对应实体类属性映射集合 /// public Map ColumnToProp { get { return columnToProp; } set { columnToProp = value; } } /// /// 获取本数据库表信息中的参数键值集合 /// /// public List GetParameterList() { if (this.Columns == null || this.Columns.Count == 0) return new List(); Session session = SessionThreadLocal.Get(); List paramList = new List(); foreach (string key in this.Columns.Keys) { if (!string.IsNullOrEmpty(key.Trim())) { object value = this.Columns[key]; if (value != null) { IDbDataParameter param = session.DbFactory.CreateDbParameter(); param.ParameterName = key; param.Value = value; paramList.Add(param); } } } return paramList; } /// /// 将参数集合转为参数数组 /// /// 参数集合 /// public IDbDataParameter[] GetParameters(List paramList) { Session session = SessionThreadLocal.Get(); int i = 0; IDbDataParameter[] parameters = session.DbFactory.CreateDbParameters(paramList.Count); foreach (IDbDataParameter dbParameter in paramList) { parameters[i] = dbParameter; i++; } return parameters; } /// /// 获取本数据库表信息中的参数键值数组 /// /// public IDbDataParameter[] GetParameters() { Session session = SessionThreadLocal.Get(); if (this.Columns == null || this.Columns.Count == 0) return session.DbFactory.CreateDbParameters(1); List paramList = new List(); foreach (string key in this.Columns.Keys) { if (!string.IsNullOrEmpty(key.Trim())) { object value = this.Columns[key]; if (value != null) { IDbDataParameter param = session.DbFactory.CreateDbParameter(); param.ParameterName = key; param.Value = value; paramList.Add(param); } } } int i = 0; IDbDataParameter[] parameters = session.DbFactory.CreateDbParameters(paramList.Count); foreach (IDbDataParameter dbParameter in paramList) { parameters[i] = dbParameter; i++; } return parameters; } } }