- 将 AppDataContext、实体模型、Migrations 从 Avalonia-Services 移动到 Avalonia-EFCore - 更新 API、PC、Services 中的数据库上下文和实体引用命名空间 - 在实体上显式绑定表名、字段名和数据库注释 - 更新 InitialCreate、Designer、Snapshot,使用新的表名、字段名和注释 - 新增 AppDataContextFactory,支持 dotnet ef 设计时创建 DbContext - 新增本地 dotnet-ef 工具清单 - 新增一键生成迁移脚本 add-migration.ps1 / .cmd / .bat - 启动时自动检测并执行未应用迁移 - 从 appsettings.json 读取数据库配置
44 lines
1.6 KiB
C#
44 lines
1.6 KiB
C#
using Avalonia_EFCore.Database;
|
||
using Avalonia_Services.Core;
|
||
using Avalonia_Services.Endpoints;
|
||
using Avalonia_Services.Services;
|
||
using Microsoft.Extensions.Configuration;
|
||
using Microsoft.Extensions.DependencyInjection;
|
||
|
||
namespace Avalonia_API.Configuration
|
||
{
|
||
public static class ServicesConfiguration
|
||
{
|
||
/// <summary>
|
||
/// 注册统一端点及其依赖的服务(含数据库)。
|
||
/// 所有业务端点定义在 Avalonia-Services/Endpoints/AppEndpoints.cs。
|
||
/// </summary>
|
||
public static IServiceCollection AddUnifiedApiServices(this IServiceCollection services, IConfiguration configuration)
|
||
{
|
||
// ---- 数据库 ----
|
||
// 从 appsettings.json 读取 DatabaseConfiguration 节
|
||
// 注册默认数据库提供程序(SQLite / MySQL / PostgreSQL / SqlServer)
|
||
DatabaseProviderRegistry.RegisterDefaults();
|
||
|
||
var databaseConfig = configuration
|
||
.GetSection(nameof(DatabaseConfiguration))
|
||
.Get<DatabaseConfiguration>()
|
||
?? DatabaseConfiguration.ForSQLite("app.db");
|
||
|
||
// 注册 AppDataContext(共享数据上下文)
|
||
services.AddAppDatabase<AppDataContext>(databaseConfig);
|
||
|
||
// ---- 业务服务 ----
|
||
services.AddScoped<WeatherForecastService>();
|
||
|
||
// ---- 统一端点 ----
|
||
var endpointBuilder = new ServiceEndpointBuilder();
|
||
AppEndpoints.Configure(endpointBuilder);
|
||
var endpoints = endpointBuilder.Build();
|
||
services.AddSingleton(endpoints);
|
||
|
||
return services;
|
||
}
|
||
}
|
||
}
|