public static ICollection <tbl_sp_troneItem> GetRowsById(Shotgun.Database.IBaseDataClass2 dBase, IEnumerable <int> ids) { if (ids.Count() == 1) { var m = GetRowById(dBase, ids.First()); if (m == null) { return(null); } return(new tbl_sp_troneItem[] { m }); } var data = _cache.GetCacheData(true); if (data != null) { lock (_cache.SyncRoot) { return((from item in data where ids.Contains(item.id) select item).ToArray()); } } var q = LightDataModel.tbl_sp_troneItem.GetQueries(dBase); q.Filter.AndFilters.Add(tbl_sp_troneItem.Fields.PrimaryKey, ids); q.PageSize = int.MaxValue; var rlt = q.GetDataList(); foreach (var item in rlt) { _cache.InsertItem(item); } return(rlt); }
public static IEnumerable <tbl_trone_orderItem> QueryByTroneIdWithCache(Shotgun.Database.IBaseDataClass2 dBase, int troneId) { IEnumerable <tbl_trone_orderItem> lst = null; var t = cache.GetCacheData(true); if (t != null) { lock (cache.SyncRoot) { lst = from item in t where !item.disable && item.trone_id == troneId select item; return(lst.ToArray()); } } #if DEBUG if (isWinform) { Console.WriteLine("QueryByTroneIdWithCache from database:troneId {0} ", troneId); } else #endif Shotgun.Library.SimpleLogRecord.WriteLog("Cache2Sql", string.Format("QueryByTroneIdWithCache from database:troneId {0} ", troneId)); var l = LightDataModel.tbl_trone_orderItem.GetQueries(dBase); l.Filter.AndFilters.Add(LightDataModel.tbl_trone_orderItem.Fields.trone_id, troneId); l.Filter.AndFilters.Add(LightDataModel.tbl_trone_orderItem.Fields.disable, 0); l.PageSize = int.MaxValue; lst = l.GetDataList(); if (lst == null || lst.Count() == 0) { return(lst); } foreach (var m in lst) { cache.InsertItem(m); } return(lst); }
/// <summary> /// 根据 sp_api_url_id 和端口号查找所有通道 (缓存15分钟) /// </summary> /// <param name="apiId"></param> /// <param name="port"></param> /// <returns></returns> public static IEnumerable <tbl_troneItem> QueryTronesByPort(Shotgun.Database.IBaseDataClass2 dBase, int apiId, string port) { IEnumerable <tbl_troneItem> cmds; var tTrones = cache.GetCacheData(true); if (tTrones != null) { lock (cache.SyncRoot) { cmds = from t in tTrones where t.sp_api_url_id == apiId && t.trone_num == port && t.status == 1 select t; if (cmds != null) { return(cmds.ToArray()); } return(null); } } var csl = GetQueries(dBase); csl.Filter.AndFilters.Add(Fields.sp_api_url_id, apiId); csl.Filter.AndFilters.Add(Fields.trone_num, port); csl.Filter.AndFilters.Add(Fields.status, 1); //csl.Fields = new string[] { Fields.id, Fields.trone_num, Fields.orders, Fields.is_dynamic, Fields.price, Fields.match_price, Fields.sp_trone_id }; csl.PageSize = int.MaxValue; cmds = csl.GetDataList(); if (cmds != null) { foreach (var cmd in cmds) { cache.InsertItem(cmd); } } return(cmds); }