using System; using System.Collections.Generic; using System.Linq; using System.Text; using Ant.Data; using Ant.Frame; using Newtonsoft.Json; namespace Ant.ORM { // /// 实体基类 /// [Serializable] public abstract class EntityBase { //private string _OrderBy = ""; ///// ///// 排序 ///// //public string OrderBy //{ // get { return _OrderBy; } // set { _OrderBy = value; } //} private string _WhereSql = ""; /// /// 自定义查询条件 /// [JsonIgnore] 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; /// /// 操作类型 /// [JsonIgnore] public EntityPersistType PersistType { get { return persistType; } set { persistType = value; } } /// /// 模块 /// [JsonIgnore] public abstract string ModuleName { get; set; } /// /// 排序 /// [JsonIgnore] public abstract string OrderBy { get; set; } private Dictionary _entydic; /// /// 实体集合操作 /// public Dictionary EntyDic { get { return _entydic; } set { _entydic = value; } } /// /// 状态值属性 /// [JsonIgnore] public Dictionary Values { get; set; } /// /// 给实体赋值 /// /// 字段名称 /// 默认值 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; } } } /// /// 获得对象的值 /// /// 字段名称 /// 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; } /// /// 属性值修改情况 /// /// 字段名称 /// 当前值 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; } } } } }