FreeSql/FreeSql.DbContext/Extenssions/DependencyInjection.cs
2019-06-27 09:40:35 +08:00

37 lines
988 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