更新LiteDb组件

起因

周末没有事情,也没出去玩,因为外面即使下过小雨之后,还是很热的.便整理博客的程序,博客程序在迁移为Asp.Net Core之后,就没有调整了,在Nuget管理器中看到litedb可以更新了.
边去litedb官网看了一下信息.在官网上看到有界面管理工具LiteDB.Studio,下载地址:https://github.com/mbdavid/LiteDB.Studio/releases


迁移

原先使用的V4(4.14)版本和最新版本V5(5.X)不兼容的.需要从老版本的库文件将数据导出.在将数据到导入到新版本库中.
/// <summary>
/// 从Litedb中将数据导出
/// </summary>
private static void ExportDataInDb()
{
    IList<Article> articleList = DbHelper.FindAll<Article>("articles");
    string artJson = JsonConvert.SerializeObject(articleList);
    File.WriteAllText("articles.txt", artJson);

    IList<Category> categorieList = DbHelper.FindAll<Category>("tags");
    string cateJson = JsonConvert.SerializeObject(categorieList);
    File.WriteAllText("category.txt", cateJson);
}

/// <summary>
/// 从文本中读取数据插入Litedb中
/// </summary>
private static void ImportDataForTxt()
{
    string artPath = Path.Combine(Directory.GetCurrentDirectory(), "articles.txt");

    string json = File.ReadAllText(artPath);

    //V5支持的连接字符串 ,增加密码
    //using (var db = new LiteDatabase(connectionString))
    //{
    //   //操作数据库
    //}
    //DbHelper.SetDbPath 修改连接字符串connectionString
    DbHelper.SetDbPath("Filename=xxx.db;Password=123");


    IList<Article> list = JsonConvert.DeserializeObject<IList<Article>>(json);

    for (int i = 0; i < list.Count; i++)
    {
        int result = DbHelper.Save(list[i], "articles");
        Console.WriteLine("articles id=" + result);
    }


    string categoryPath = Path.Combine(Directory.GetCurrentDirectory(), "category.txt");

    string categoryJson = File.ReadAllText(categoryPath);

    IList<Category> categoryList = JsonConvert.DeserializeObject<IList<Category>>(categoryJson);

    for (int i = 0; i < categoryList.Count; i++)
    {
        int result = DbHelper.Save(categoryList[i], "tags");
        Console.WriteLine("tag id=" + result);
    }
}

LiteDB.Studio还支持json文件查询.

LiteDB.Studio支持从Json文件进行数据查询

秋风 2020-08-23