mirror of
https://github.com/rmcrackan/Libation.git
synced 2026-02-19 15:24:06 -05:00
Make fields readonly Remove unnecessary casts Format document Remove unnecessary usings Sort usings Use file-level namespaces Order modifiers
41 lines
1.2 KiB
C#
41 lines
1.2 KiB
C#
using Microsoft.EntityFrameworkCore;
|
|
using Microsoft.EntityFrameworkCore.Diagnostics;
|
|
using Npgsql.EntityFrameworkCore.PostgreSQL.Infrastructure;
|
|
using System;
|
|
|
|
namespace DataLayer;
|
|
|
|
public class LibationContextFactory
|
|
{
|
|
public static void ConfigureOptions(NpgsqlDbContextOptionsBuilder options)
|
|
{
|
|
AppContext.SetSwitch("Npgsql.EnableLegacyTimestampBehavior", true);
|
|
options.MigrationsAssembly("DataLayer.Postgres");
|
|
options.UseQuerySplittingBehavior(QuerySplittingBehavior.SplitQuery);
|
|
}
|
|
|
|
public static LibationContext CreatePostgres(string connectionString)
|
|
{
|
|
var options = new DbContextOptionsBuilder<LibationContext>();
|
|
|
|
options.UseNpgsql(connectionString, ConfigureOptions);
|
|
|
|
return new LibationContext(options.Options);
|
|
}
|
|
|
|
public static LibationContext CreateSqlite(string connectionString)
|
|
{
|
|
var options = new DbContextOptionsBuilder<LibationContext>();
|
|
|
|
options
|
|
.ConfigureWarnings(w => w.Ignore(RelationalEventId.PendingModelChangesWarning))
|
|
.UseSqlite(connectionString, options =>
|
|
{
|
|
options.MigrationsAssembly("DataLayer.Sqlite");
|
|
options.UseQuerySplittingBehavior(QuerySplittingBehavior.SplitQuery);
|
|
});
|
|
|
|
return new LibationContext(options.Options);
|
|
}
|
|
}
|