public T Find <T>(int id) where T : BaseModel, new() { Type type = typeof(T); string sql = SqlCacheBuilder <T> .GetSql(SqlCacheBuilderType.FindOne); SqlParameter[] sqlParameterList = new SqlParameter[] { new SqlParameter("@Id", id) }; return(this.ExecuteSql(sql, sqlParameterList, comm => { var reader = comm.ExecuteReader(); if (reader.Read()) { //T t = Activator.CreateInstance<T>(); T t = new T(); foreach (var prop in type.GetProperties()) { string propName = prop.GetMappingName(); prop.SetValue(t, reader[propName] is DBNull ? null : reader[propName]); } return t; } else { return default; } }, SqlConnectionStringPool.DBOperateType.Read)); }
public bool Delete <T>(int id) where T : BaseModel, new() { Type type = typeof(T); string sql = SqlCacheBuilder <T> .GetSql(SqlCacheBuilderType.Delete); SqlParameter[] sqlParameterList = new SqlParameter[] { new SqlParameter("@Id", id) }; return(this.ExecuteSql(sql, sqlParameterList, comm => comm.ExecuteNonQuery() == 1)); }
public bool Update <T>(T t) where T : BaseModel, new() { if (!t.ValidateModel()) { return(false); } Type type = typeof(T); string sql = SqlCacheBuilder <T> .GetSql(SqlCacheBuilderType.Update); SqlParameter[] sqlParameterList = type.GetProperties().Select(p => new SqlParameter($"@{p.GetMappingName()}", p.GetValue(t) ?? DBNull.Value)).Append(new SqlParameter("@Id", t.Id)).ToArray(); return(this.ExecuteSql(sql, sqlParameterList, comm => comm.ExecuteNonQuery() == 1)); }