StockProfile。
在選股工具裡,如果每次開啟程式都重新呼叫 API,會有幾個缺點:
解決方式是:把資料存放在本地資料庫,之後直接讀取本地資料,不必每次都重新下載。
LiteDB 是一個 輕量級的 .NET NoSQL 本地資料庫:
.db 檔案裡在 CLI 執行:
dotnet add package LiteDB
或在 Visual Studio → Manage NuGet Packages → 搜尋 LiteDB → 安裝
假設我們的資料模型是 StockProfile:
public class StockProfile
{
    public string Code { get; set; }
    public string Name { get; set; }
    public string Industry { get; set; }
    public DateTime LastUpdatedUtc { get; set; }
}
using System;
using System.Collections.Generic;
using LiteDB;
class Program
{
    static void Main(string[] args)
    {
        using (var db = new LiteDatabase(@"StockData.db"))
        {
            var col = db.GetCollection<StockProfile>("stocks");
            var stock = new StockProfile
            {
                Code = "2330",
                Name = "台積電",
                Industry = "半導體",
                LastUpdatedUtc = DateTime.UtcNow
            };
            col.Insert(stock);
            Console.WriteLine("已新增股票:2330 台積電");
        }
    }
}
這段程式會在同目錄建立一個 StockData.db 檔案,並把 StockProfile 存進 stocks 集合。
using (var db = new LiteDatabase(@"StockData.db"))
{
    var col = db.GetCollection<StockProfile>("stocks");
    // 找出所有半導體產業的股票
    var results = col.Find(x => x.Industry == "半導體");
    foreach (var stock in results)
    {
        Console.WriteLine($"{stock.Code} - {stock.Name} ({stock.Industry})");
    }
}
今天我們學會了: