using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ETD.Frame { // <summary> /// 实体基类 /// </summary> [Serializable] public abstract class EntityBase { //private string _OrderBy = ""; ///// <summary> ///// 排序 ///// </summary> //public string OrderBy //{ // get { return _OrderBy; } // set { _OrderBy = value; } //} private string _WhereSql = ""; /// <summary> /// 自定义查询条件 /// </summary> public string WhereSql { get { return this._WhereSql; } set { value = value.Trim().ToLower(); if (value.StartsWith("where")) { value = value.Substring(5, value.Length - 5); } this._WhereSql = value; } } private EntityPersistType persistType; /// <summary> /// 操作类型 /// </summary> public EntityPersistType PersistType { get { return persistType; } set { persistType = value; } } /// <summary> /// 模块 /// </summary> public abstract string ModuleName { get; } /// <summary> /// 排序 /// </summary> public abstract string OrderBy { get; set; } private Dictionary<string, EntyTypeData> _entydic; /// <summary> /// 实体集合操作 /// </summary> public Dictionary<string, EntyTypeData> EntyDic { get { return _entydic; } set { _entydic = value; } } public Dictionary<string, EntityValue> _values = new Dictionary<string, EntityValue>(); /// <summary> /// 状态值属性 /// </summary> public Dictionary<string, EntityValue> Values { get { return this._values; } set { this._values = value; } } /// <summary> /// 给实体赋值 /// </summary> /// <param name="FieldName">字段名称</param> /// <param name="defaultValue">默认值</param> protected void SetChanaged(string FieldName, object defaultValue) { if (!Values.ContainsKey(FieldName)) { EntityValue val = new EntityValue(); val.OriginalValue = defaultValue; val.FieldName = FieldName; val.IsChanage = false; Values.Add(FieldName, val); } else { EntityValue val = Values[FieldName]; if (object.Equals(val.OriginalValue, defaultValue)) { val.CurrentValue = null; val.IsChanage = false; } else { val.CurrentValue = defaultValue; val.IsChanage = true; } } } /// <summary> /// 获得对象的值 /// </summary> /// <param name="FieldName">字段名称</param> /// <returns></returns> protected object ToValue(string FieldName) { if (Values.ContainsKey(FieldName)) { EntityValue val = Values[FieldName]; if (val.CurrentValue != null) { return val.CurrentValue; } if (val.OriginalValue != null) { return val.OriginalValue; } return null; } return null; } /// <summary> /// 属性值修改情况 /// </summary> /// <param name="FieldName">字段名称</param> /// <param name="currentValue">当前值</param> protected void ToChanaged(string FieldName, object currentValue) { if (Values.ContainsKey(FieldName)) { EntityValue val = Values[FieldName]; if (object.Equals(val.OriginalValue, currentValue)) { val.CurrentValue = null; val.IsChanage = false; } else { val.CurrentValue = currentValue; val.IsChanage = true; } } } } }