/// <summary> /// /// </summary> /// <param name="key"> "City"</param> /// <returns></returns> public IEnumerable <CategoryData> QueryCityCategory(string key) { DBReporistory <CategoryData> main = new DBReporistory <CategoryData>(ConnString); IEnumerable <CategoryData> data = main.DoQuery <CategoryData>().Where(t => !t.IsDelete && (!string.IsNullOrEmpty(key)? t.ItemType == key:true) && !string.IsNullOrEmpty(t.Name)); return(data); }
public void SaveQQ(List <FindQQDataTable> data) { try { //由于sqlite不支持guid数据存储:直接存储会变成乱码 DBReporistory <TecentQQData> main = new DBReporistory <TecentQQData>(ConnString); DateTime now = DateTime.Now; List <TecentQQData> tcs = new List <TecentQQData>(); foreach (FindQQDataTable item in data) { NoIDQQData noKey = item.ConvertMapModel <FindQQDataTable, NoIDQQData>(); TecentQQData tc = noKey.ConvertMapModel <NoIDQQData, TecentQQData>(); tc.ID = GenerateId(); tc.CreateTime = now; if (string.IsNullOrEmpty(tc.Url))//没有采集到该账户的头像数据 { tc.ImgType = -1; } tc.DayInt = int.Parse(now.ToString("yyyyMMdd")); tcs.Add(tc); } main.AddList(tcs.ToArray()); } catch (Exception ex) { /* 原因:sqlite不支持实体列数据类型为Guid的情形 * One or more validation errors were detected during model generation: * * Infrastructure.EFSQLite.TecentQQData: : EntityType 'TecentQQData' has no key defined. Define the key for this EntityType. * Entity: EntityType: EntitySet 'Entity' is based on type 'TecentQQData' that has no keys defined. * */ } }
public static void SyncCategory(List <CategoryData> list) { try { //string json = Newtonsoft.Json.JsonConvert.SerializeObject(list); /* * Unable to complete operation. The supplied SqlConnection does not specify an initial catalog or AttachDBFileName. */ DBReporistory <CategoryData> md = new DBReporistory <CategoryData>(new ConfigurationItems().SqliteDbConnString); List <CategoryData> dstas = md.DoQuery <CategoryData>().ToList(); //一次操作数据量过大需要分批次 List <CategoryData> group = new List <CategoryData>(); for (int i = 0; i < list.Count; i++) { group.Add(list[i]); if (i % 2 == 0) { md.AddList(group.ToArray()); group.Clear(); } } } catch (Exception ex) { } }
private void Test() { string appPath = AppDomain.CurrentDomain.BaseDirectory;//当前程序目录 // @"PluginApp\SelfWebPluginWin\bin\Debug"; string dbPath = CycleParent(4, appPath) + @"\LocalData.SQLite\AppSetting.db"; //检测是否存在 string connString = string.Format("data source={0};Version=3;", dbPath); try { DBReporistory <AppSettingData> dbReporistory = new DBReporistory <AppSettingData>("SQLite"); int index = dbReporistory.DoQuery <AppSettingData>().Max(s => s.Id); //从文本文件中读取 string path = string.Format(@"{0}AppSettingCofnig\AppSettings.txt", appPath); string json = FileHelper.ReadFile(path); List <AppSettingData> datas = JsonConvert.DeserializeObject <List <AppSettingData> >(json); for (int i = 0; i < datas.Count; i++) { datas[i].CreateTime = DateTime.Now; datas[i].Id = index + i; } /* * No Entity Framework provider found for the ADO.NET provider with invariant name 'System.Data.SqlClient'. Make sure the provider is registered in the 'entityFramework' section of the application config file. See http://go.microsoft.com/fwlink/?LinkId=260882 for more information. */ } catch (Exception ex) { } }
public void QueryCityDataByExt() { try { GetCityDatas(); ConfigurationItems cfg = new ConfigurationItems(); DBReporistory <Domain.CommonData.CategoryData> cds = new DBReporistory <CategoryData>("TecentDASQLite");//提供配置的节点名,不能直接使用配置的连接串内容 List <Domain.CommonData.CategoryData> ds = cds.DoQuery <Domain.CommonData.CategoryData>().ToList(); } catch (Exception ex) { } }
public List <Domain.CommonData.CategoryData> QueryCityDataByExt() { List <Domain.CommonData.CategoryData> list = new List <CategoryData>(); try { DBReporistory <Domain.CommonData.CategoryData> cds = new DBReporistory <CategoryData>("TecentDASQLite"); list = cds.DoQuery <Domain.CommonData.CategoryData>().ToList(); return(list); } catch (Exception ex) { return(list); } }
public PickUpStatic TodayStaticData() { PickUpStatic ps = new PickUpStatic(); try { string sql = @"select ( SELECT count(Id) FROM TecentQQData) as DBTotal, (select count( distinct(uin)) FROM TecentQQData) as DBPrimaryTotal, (select count(Id) from TecentQQData where dayint=cast( strftime('%Y%m%d', 'now') as int)) as Total , (select count(distinct(uin)) from TecentQQData where dayint=cast( strftime('%Y%m%d', 'now') as int)) as IdTotal, (select cast( strftime('%Y%m%d', 'now') as int) ) as StaticDay"; DBReporistory <PickUpStaticSQLite> sync = new DBReporistory <PickUpStaticSQLite>(ConnString); IEnumerable <PickUpStaticSQLite> arr = sync.ExecuteSQL <PickUpStaticSQLite> (sql, "StaticDay"); PickUpStaticSQLite[] detail = arr.ToArray(); PickUpStatic data = new PickUpStatic() { DBPrimaryTotal = detail[0].DBPrimaryTotal, DBTotal = detail[0].DBTotal, IdTotal = detail[0].IdTotal, StaticDay = detail[0].StaticDay.ToString(), Total = detail[0].Total }; /* * One or more validation errors were detected during model generation: * * Infrastructure.EFSQLite.PickUpStatic: : EntityType 'PickUpStatic' has no key defined. Define the key for this EntityType. * Entity: EntityType: EntitySet 'Entity' is based on type 'PickUpStatic' that has no keys defined. * */ return(data); } catch (Exception ex) { /* * 1.设置一个属性为 实体主键之后出现错误: * The 'StaticDay' property on 'PickUpStatic' could not be set to a 'System.Int64' value. You must set this property to a non-null value of type 'System.String'. * 2.更改属性数据类型为int 出现新错误: * 类型为“System.Int32”的表达式不能用于返回类型“System.Object 该问题是由于去重排序表达式导致 * 3.没有在类型“System.Int32”和“ApplicationService.SQLiteService.SQLiteQQDataService+PickUpStaticSQLite”之间定义强制运算符。 */ } return(ps); }
public static void SyncCategory(List <CategoryData> list) { try { DBReporistory <CategoryData> md = new DBReporistory <CategoryData>(new ConfigurationItems().SqliteDbConnString); List <CategoryData> dstas = md.DoQuery <CategoryData>().ToList(); //一次操作数据量过大需要分批次 List <CategoryData> group = new List <CategoryData>(); for (int i = 0; i < list.Count; i++) { group.Add(list[i]); if (i % 2 == 0) { md.AddList(group.ToArray()); group.Clear(); } } } catch (Exception ex) { } }
/// <summary> /// redis 中没有匹配的数据时基础数据加载形式 /// </summary> private void NotRedisCacheCase() { string dir = GetRedisRelyFileDir(); string cityFile = GetCagetoryDataFileNameOrRedisItem(targetCountry, redisItemOrFileNameFormat(SystemConfig.RedisValueIsJsonFormat)) + ".txt"; if (SystemConfig.CfgFileExistsIsDoReplace || !File.Exists(dir + "/" + cityFile)) { //没有数据文件时先从数据库中进行读取,在写入到文件中,最后写入到redis中 //CategoryDataService cds = new CategoryDataService(new ConfigurationItems().TecentDA); List <CategoryData> city = new List <CategoryData>(); // cds.QueryCityCategory().ToList(); //省会,城市,区域 AnalyCity(city, targetCountry); //创建相关文件 } //将数据写入redis #region --这里需要增加一个判断是否将数据缓存到Redis缓存库 //在Redis数据库中增加一个版本号来记录当前存储的城市数据版本 if (SystemConfig.OpenRedis) {//启用Redis功能(数据写入到Redis缓存中) //rcm.SetPropertyValue("A_"+SystemConfig.DateTimeIntFormat, DateTime.Now.ToString(SystemConfig.DateTimeIntFormat)); // rcm.SetCityCacheFromFile(dir, rcm, SystemConfig.RedisValueIsJsonFormat); } #endregion //将文件中的数据 string text = FileHelper.ReadFile(dir + "/" + cityFile); CategoryGroup group = text.ConvertObject <CategoryGroup>(); //转换为城市数据列表 List <CategoryData> cities = GetCityDatas(group); try { DBReporistory <CategoryData> db = new DBReporistory <CategoryData>("TecentDASQLite"); // db.AddList(cities.ToArray()); } catch (Exception ex) { } cityList.AddRange(group.Childrens.Select(s => s.Root).OrderBy(s => s.Code).ToArray()); }