using SqlSugar; namespace AssetManager.Data; public class DatabaseService { private readonly ISqlSugarClient _db; public DatabaseService(ISqlSugarClient db) { _db = db; } public void InitializeDatabase() { _db.CodeFirst.InitTables( typeof(User), typeof(Strategy), typeof(Portfolio), typeof(Position), typeof(Transaction), typeof(TiingoTicker), typeof(MarketPriceCache), typeof(MarketKlineCache), typeof(PortfolioNavHistory) ); } public ISqlSugarClient GetDb() { return _db; } /// /// 根据ID获取投资组合(校验用户ID) /// public Portfolio? GetPortfolioById(string id, string userId) { return _db.Queryable() .First(p => p.Id == id && p.UserId == userId); } /// /// 根据投资组合ID获取持仓列表 /// public List GetPositionsByPortfolioId(string portfolioId) { return _db.Queryable() .Where(p => p.PortfolioId == portfolioId) .ToList(); } }