- PortfolioRepository: Date -> NavDate 属性名修正 - MarketDataRepository: 修复 TiingoTicker.Ticker 空引用警告 |
||
|---|---|---|
| .. | ||
| Repositories | ||
| AssetManager.Data.csproj | ||
| DatabaseExtensions.cs | ||
| DatabaseService.cs | ||
| MarketKlineCache.cs | ||
| MarketPriceCache.cs | ||
| Portfolio.cs | ||
| PortfolioNavHistory.cs | ||
| Position.cs | ||
| README.md | ||
| SqlSugarConfig.cs | ||
| Strategy.cs | ||
| TiingoTicker.cs | ||
| Transaction.cs | ||
| User.cs | ||
AssetManager 数据库使用说明
数据库配置
数据库连接字符串在 SqlSugarConfig.cs 中配置:
ConnectionString = "server=localhost;Database=assetmanager;Uid=root;Pwd=your_password;CharSet=utf8mb4;"
请根据实际情况修改:
server: MySQL服务器地址Database: 数据库名称Uid: 用户名Pwd: 密码
数据库实体类
用户相关
User: 用户基本信息WechatUser: 微信用户信息
资产相关
Asset: 总资产数据Holding: 持仓组合数据
策略相关
Strategy: 策略模板StrategyTag: 策略标签StrategyParameter: 策略参数UserStrategy: 用户自定义策略
投资组合相关
Portfolio: 投资组合Position: 持仓明细Transaction: 交易记录
使用方法
1. 自动初始化(推荐)
在 Program.cs 中已经配置了自动初始化:
builder.Services.AddDatabase();
应用启动时会自动创建所有数据库表。
2. 手动初始化
运行 InitDatabase.cs 中的 Main 方法:
InitDatabase.Main();
这会创建所有表并插入示例数据。
3. 在Service中使用
在Service中注入 DatabaseService 或 ISqlSugarClient:
public class AssetService : IAssetService
{
private readonly ISqlSugarClient _db;
public AssetService(ISqlSugarClient db)
{
_db = db;
}
public List<Holding> GetHoldings()
{
return _db.Queryable<Holding>().ToList();
}
}
Code First 模式
使用 SqlSugar 的 Code First 模式,通过实体类自动创建数据库表:
- 实体类使用
[SugarTable]特性指定表名 - 属性使用
[SugarColumn]特性配置列 - 主键使用
IsPrimaryKey = true - 自增主键使用
IsIdentity = true - 列名映射使用
ColumnName
数据库表结构
users 表
- 用户基本信息、统计数据、会员等级等
wechat_users 表
- 微信用户绑定信息、OpenID、UnionID等
assets 表
- 总资产数据、今日收益、总收益率等
holdings 表
- 持仓组合数据、状态、图标样式等
strategies 表
- 策略模板、风险等级、描述等
strategy_tags 表
- 策略标签关联
strategy_parameters 表
- 策略参数配置
user_strategies 表
- 用户自定义策略配置
portfolios 表
- 投资组合基本信息
positions 表
- 持仓明细、盈亏计算等
transactions 表
- 交易记录、状态跟踪等