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})");
}
}
今天我們學會了: