mirror of
https://github.com/nsnail/FreeSql.git
synced 2025-04-27 13:12:51 +08:00
32 lines
762 B
C#
32 lines
762 B
C#
#if ns20
|
|
|
|
using Microsoft.Extensions.DependencyInjection;
|
|
using System;
|
|
|
|
namespace FreeSql {
|
|
public static class DbContextDependencyInjection {
|
|
|
|
public static IServiceCollection AddFreeDbContext<TDbContext>(this IServiceCollection services, Action<DbContextOptionsBuilder> options) where TDbContext : DbContext {
|
|
|
|
services.AddScoped<TDbContext>(sp => {
|
|
var ctx = Activator.CreateInstance<TDbContext>();
|
|
|
|
if (ctx._orm == null) {
|
|
var builder = new DbContextOptionsBuilder();
|
|
options(builder);
|
|
ctx._orm = builder._fsql;
|
|
|
|
if (ctx._orm == null)
|
|
throw new Exception("请在 OnConfiguring 或 AddFreeDbContext 中配置 UseFreeSql");
|
|
|
|
ctx.InitPropSets();
|
|
}
|
|
|
|
return ctx;
|
|
});
|
|
|
|
return services;
|
|
}
|
|
}
|
|
}
|
|
#endif |