44 lines
1.6 KiB
C#
44 lines
1.6 KiB
C#
using DaSaSo.EntityFramework;
|
|
using Microsoft.EntityFrameworkCore;
|
|
using Microsoft.Extensions.Configuration;
|
|
using Microsoft.Extensions.DependencyInjection;
|
|
using Microsoft.Extensions.Hosting;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Diagnostics;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace DaSaSo.Wpf.HostBuilders
|
|
{
|
|
public static class AddDbContextHostBuilderExtensions
|
|
{
|
|
public static IHostBuilder AddDBContext(this IHostBuilder host)
|
|
{
|
|
host.ConfigureServices((context,services) =>
|
|
{
|
|
string connectionString = "";
|
|
Action<DbContextOptionsBuilder> configureDbContext = null;
|
|
string databaseToUse = context.Configuration.GetConnectionString("databaseToUse");
|
|
Trace.WriteLine(databaseToUse);
|
|
if(databaseToUse.Equals("default"))
|
|
{
|
|
connectionString = context.Configuration.GetConnectionString("default");
|
|
configureDbContext = o => o.UseNpgsql(connectionString);
|
|
}
|
|
else if(databaseToUse.Equals("sqlite"))
|
|
{
|
|
connectionString = context.Configuration.GetConnectionString("sqlite");
|
|
configureDbContext = o => o.UseSqlite(connectionString);
|
|
}
|
|
|
|
|
|
services.AddDbContext<DaSaSoDbContext>(configureDbContext);
|
|
services.AddSingleton<DaSaSoDbContextFactory>(new DaSaSoDbContextFactory(configureDbContext));
|
|
});
|
|
return host;
|
|
}
|
|
}
|
|
}
|