webapi 集成 之 freesql 注入


using EasyCaching.SQLite;
using jxc.Repository;
using jxc.Service;

namespace jxc.Api;

public class Program
{
    public static void Main(string[] args)
    {
        WebApplicationBuilder builder = WebApplication.CreateBuilder(args);

        // Add services to the container.
        builder.Services.AddControllers();
        // Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle
        builder.Services.AddEndpointsApiExplorer();
        builder.Services.AddSwaggerGen();

        IServiceCollection services = builder.Services;

        Func<IServiceProvider, IFreeSql> fsqlFactory = r =>
        {
            IFreeSql fsql = new FreeSql.FreeSqlBuilder()
                .UseConnectionString(FreeSql.DataType.Sqlite, @"Data Source=freedb2024.db")
                .UseMonitorCommand(cmd => Console.WriteLine($"Sql:{cmd.CommandText}"))
                .UseAutoSyncStructure(true) //自动同步实体结构到数据库,只有CRUD时才会生成表
                .Build();
            return fsql;
        };
        services.AddSingleton<IFreeSql>(fsqlFactory);

        services.AddSingleton<IInventoryRepository, InventoryRepository>();
        services.AddScoped<InventoryService>();
        var app = builder.Build();
        // Configure the HTTP request pipeline.
        if (app.Environment.IsDevelopment())
        {
            app.UseSwagger();
            app.UseSwaggerUI();
        }
        app.UseAuthorization();
        app.MapControllers();
        app.Run();
    }
}
posted @ 2025-01-08 10:35  网络来者  阅读(49)  评论(0)    收藏  举报