Files
AgileConfig/AgileConfig.Server.Data.Freesql/FreeSQL.cs
T
2020-09-22 10:31:32 +08:00

47 lines
1.4 KiB
C#

using AgileConfig.Server.Common;
using Microsoft.Extensions.Configuration;
using System;
namespace AgileConfig.Server.Data.Freesql
{
public static class FreeSQL
{
private static IFreeSql _freesql;
static FreeSQL()
{
_freesql = new FreeSql.FreeSqlBuilder()
.UseConnectionString(ProviderToFreesqlDbType(DbProvider), DbConnection)
.Build();
FluentApi.Config(_freesql);
EnsureTables.Ensure(_freesql);
}
public static IFreeSql Instance => _freesql;
private static string DbProvider => Global.Config["db:provider"];
private static string DbConnection => Global.Config["db:conn"];
private static FreeSql.DataType ProviderToFreesqlDbType(string provider)
{
switch (provider)
{
case "sqlite":
return FreeSql.DataType.Sqlite;
case "mysql":
return FreeSql.DataType.MySql;
case "sqlserver":
return FreeSql.DataType.SqlServer;
case "npgsql":
return FreeSql.DataType.PostgreSQL;
case "oracle":
return FreeSql.DataType.Oracle;
default:
break;
}
return FreeSql.DataType.Sqlite;
}
}
}