/// <summary> /// 设置逻辑删除方案 /// </summary> /// <param name="name">软删除标记字段名称</param> /// <param name="sortDeleteType">数据库字段类型</param> /// <param name="value">标记值</param> public SetDataMap SetSortDelete(string name, eumSortDeleteType sortDeleteType, object value) { Check.NotEmpty(name, "字段名称不能为空"); Check.IsTure(sortDeleteType != eumSortDeleteType.DateTime && value == null, "非时间类型时,value不能为空"); SortDelete = SortDeleteCacheManger.Cache(name, sortDeleteType, value, ClassProperty.PropertyType.GetGenericArguments()[0]); return(this); }
///// <summary> ///// 设置外键关系 ///// </summary> ///// <param name="propertyName">实体类属性名称</param> ///// <param name="foreignSet">外键Set属性名称</param> ///// <param name="foreignProperty">外键字段属性名称</param> //public EntityDataMap SetForeignKey(string propertyName, string foreignSet, string foreignProperty) //{ // return this; //} /// <summary> /// 设置逻辑删除方案 /// </summary> /// <param name="name">软删除标记字段名称</param> /// <param name="field">数据库字段类型</param> /// <param name="value">标记值</param> public SetDataMap SetSortDelete(string name, eumSortDeleteType field, object value) { Check.NotEmpty(name, "字段名称不能为空"); Check.IsTure(field != eumSortDeleteType.DateTime && value == null, "非时间类型时,value不能为空"); SortDelete = SortDeleteCacheManger.Cache(name, field, value, Property.PropertyType.GetGenericArguments()[0]); return this; }
/// <summary> /// 创建逻辑删除功能 /// </summary> /// <param name="name">软删除标记字段名称</param> /// <param name="field">数据库字段类型</param> /// <param name="value">标记值</param> /// <param name="entityType">实体类型</param> private SortDeleteCacheManger(string name, eumSortDeleteType field, object value, Type entityType) { this._field = field; this._value = value; _entityType = entityType; _name = name; Key = name.GetHashCode() + field.GetHashCode(); if (value != null) { Key += value.GetHashCode(); } Key += entityType.GetHashCode(); }
/// <summary> /// 获取缓存 /// </summary> /// <param name="name">软删除标记字段名称</param> /// <param name="field">数据库字段类型</param> /// <param name="value">标记值</param> /// <param name="defineType">实体类型</param> public static SortDelete Cache(string name, eumSortDeleteType field, object value, Type defineType) { return(new SortDeleteCacheManger(name, field, value, defineType).GetValue()); }