/// <summary> /// 从数据库中获取对象 /// </summary> /// <typeparam name="T"></typeparam> /// <returns></returns> public T GetSetting<T>() where T : class { try { LDB_SystemParameterBll bll = new LDB_SystemParameterBll(_RepoUri); LDB_SysparameterInfo para = null; QueryResult<LDB_SysparameterInfo> result = null; Type t = typeof(T); result = bll.GetSysParameterByID(t.Name); if (result.Result == ResultCode.Successful) { para = result.QueryObject; string value = para.ParameterValue; if (!string.IsNullOrEmpty(value)) { byte[] data = Encoding.UTF8.GetBytes(value); using (MemoryStream stream = new MemoryStream(data)) { stream.Position = 0; DataContractSerializer ser = new DataContractSerializer(t); return ser.ReadObject(stream) as T; } } } } catch (Exception ex) { ExceptionPolicy.HandleException(ex); } return null; }
/// <summary> ///使用事物保存到数据库,使用事物是为了访问数据库的次数,多次访问数据会导致操作时间过长 /// </summary> /// <param name="info"></param> public void SaveSettingWithUnitWork <T>(T info) where T : class { try { Type t = typeof(T); LDB_SysparameterInfo para; if (info != null) { DataContractSerializer ser = new DataContractSerializer(t); using (MemoryStream stream = new MemoryStream()) { ser.WriteObject(stream, info); stream.Position = 0; byte[] data = new byte[stream.Length]; stream.Read(data, 0, (int)stream.Length); string value = Encoding.UTF8.GetString(data); para = new LDB_SysparameterInfo(t.Name, value, string.Empty); } } else { para = new LDB_SysparameterInfo(t.Name, string.Empty, string.Empty); } LDB_ISysParameterProvider provider = LDB_ProviderFactory.Create <LDB_ISysParameterProvider>(_RepoUri); provider.Insert(para, unitWork); } catch (Exception ex) { ExceptionPolicy.HandleException(ex); } }
/// <summary> ///保存到数据库 /// </summary> /// <param name="info"></param> public CommandResult SaveSetting<T>(T info) where T : class { try { LDB_SystemParameterBll bll = new LDB_SystemParameterBll(_RepoUri); Type t = typeof(T); LDB_SysparameterInfo para; if (info != null) { DataContractSerializer ser = new DataContractSerializer(t); using (MemoryStream stream = new MemoryStream()) { ser.WriteObject(stream, info); stream.Position = 0; byte[] data = new byte[stream.Length]; stream.Read(data, 0, (int)stream.Length); string value = Encoding.UTF8.GetString(data); para = new LDB_SysparameterInfo(t.Name, value, string.Empty); } } else { para = new LDB_SysparameterInfo(t.Name, string.Empty, string.Empty); } return bll.Insert(para); } catch (Exception ex) { ExceptionPolicy.HandleException(ex); return new CommandResult(ResultCode.Fail, ex.Message); } }
public CommandResult Insert(LDB_SysparameterInfo info) { return(provider.Insert(info)); }