/// <summary> /// 添加变更 /// </summary> /// <param name="expression">属性表达式,范例:t => t.Name</param> /// <param name="newValue">新值,范例:newEntity.Name</param> protected void AddChange <TProperty, TValue>(Expression <Func <T, TProperty> > expression, TValue newValue) { var member = Lambda.GetMemberExpression(expression); var name = Lambda.GetMemberName(member); var description = Reflection.GetDisplayNameOrDescription(member.Member); var value = member.Member.GetPropertyValue(this); AddChange(name, description, Convert.To <TValue>(value), newValue); }
/// <summary> /// 添加描述 /// </summary> /// <param name="expression">属性表达式,范例:t => t.Name</param> protected void AddDescription <TProperty>(Expression <Func <T, TProperty> > expression) { var member = Lambda.GetMember(expression); var description = Reflection.GetDisplayNameOrDescription(member); var value = member.GetPropertyValue(this); if (Reflection.IsBool(member)) { value = Convert.ToBool(value).Description(); } AddDescription(description, value); }
/// <summary> /// 转换为int /// </summary> /// <param name="obj">数据</param> public static int ToInt(this string obj) { return(Convert.ToInt(obj)); }
/// <summary> /// 转换为可空bool /// </summary> /// <param name="obj">数据</param> public static bool?ToBoolOrNull(this string obj) { return(Convert.ToBoolOrNull(obj)); }
/// <summary> /// 转换为Guid集合 /// </summary> /// <param name="obj">数据,范例: "83B0233C-A24F-49FD-8083-1337209EBC9A,EAB523C6-2FE7-47BE-89D5-C6D440C3033A"</param> public static List <Guid> ToGuidList(this string obj) { return(Convert.ToGuidList(obj)); }
/// <summary> /// 转换为可空Guid /// </summary> /// <param name="obj">数据</param> public static Guid?ToGuidOrNull(this string obj) { return(Convert.ToGuidOrNull(obj)); }
/// <summary> /// 获取行数 /// </summary> protected virtual int GetCount(IDbConnection connection) { return(Convert.ToInt(ToScalar(connection, GetCountSql(), Params))); }
/// <summary> /// 转换为可空double /// </summary> /// <param name="obj">数据</param> public static double?ToDoubleOrNull(this string obj) { return(Convert.ToDoubleOrNull(obj)); }
/// <summary> /// 转换为可空long /// </summary> /// <param name="obj">数据</param> public static long?ToLongOrNull(this string obj) { return(Convert.ToLongOrNull(obj)); }
/// <summary> /// 查找实体列表,不跟踪 /// </summary> /// <param name="ids">逗号分隔的标识列表,范例:"1,2"</param> public List <TEntity> FindByIdsNoTracking(string ids) { var idList = Convert.ToList <TKey>(ids); return(FindByIdsNoTracking(idList)); }
/// <summary> /// 查找实体列表,不跟踪 /// </summary> /// <param name="ids">逗号分隔的标识列表,范例:"1,2"</param> public async Task <List <TEntity> > FindByIdsNoTrackingAsync(string ids) { var idList = Convert.ToList <TKey>(ids); return(await FindByIdsNoTrackingAsync(idList)); }
/// <summary> /// 获取整型 /// </summary> /// <param name="connection">数据库连接</param> public int ToInt(IDbConnection connection = null) { return(Convert.ToInt(ToScalar(connection, GetSql(), Params))); }
/// <summary> /// 获取可空整型 /// </summary> /// <param name="connection">数据库连接</param> public async Task <int?> ToIntOrNullAsync(IDbConnection connection = null) { return(Convert.ToIntOrNull(await ToScalarAsync(connection, GetSql(), Params))); }
/// <summary> /// 获取行数 /// </summary> protected virtual async Task <int> GetCountAsync(IDbConnection connection) { return(Convert.ToInt(await ToScalarAsync(connection, GetCountSql(), Params))); }
/// <summary> /// 转换为可空int /// </summary> /// <param name="obj">数据</param> public static int?ToIntOrNull(this string obj) { return(Convert.ToIntOrNull(obj)); }
/// <summary> /// 转换为日期 /// </summary> /// <param name="obj">数据</param> public static DateTime ToDate(this string obj) { return(Convert.ToDate(obj)); }
/// <summary> /// 转换为long /// </summary> /// <param name="obj">数据</param> public static long ToLong(this string obj) { return(Convert.ToLong(obj)); }
/// <summary> /// 转换为可空日期 /// </summary> /// <param name="obj">数据</param> public static DateTime?ToDateOrNull(this string obj) { return(Convert.ToDateOrNull(obj)); }
/// <summary> /// 转换为double /// </summary> /// <param name="obj">数据</param> public static double ToDouble(this string obj) { return(Convert.ToDouble(obj)); }
/// <summary> /// 转换为Guid /// </summary> /// <param name="obj">数据</param> public static Guid ToGuid(this string obj) { return(Convert.ToGuid(obj)); }
/// <summary> /// 转换为decimal /// </summary> /// <param name="obj">数据</param> public static decimal ToDecimal(this string obj) { return(Convert.ToDecimal(obj)); }
/// <summary> /// 克隆副本 /// </summary> public virtual TValueObject Clone() { return(Convert.To <TValueObject>(MemberwiseClone())); }