Browse Source

Created extension methods to set the database provider on the ModelBuilder.

pull/4135/head
Halil İbrahim Kalkan 6 years ago
parent
commit
feb3de4a90
  1. 77
      framework/src/Volo.Abp.EntityFrameworkCore/Microsoft/EntityFrameworkCore/AbpModelBuilderExtensions.cs

77
framework/src/Volo.Abp.EntityFrameworkCore/Microsoft/EntityFrameworkCore/AbpModelBuilderExtensions.cs

@ -0,0 +1,77 @@
using Volo.Abp.EntityFrameworkCore;
namespace Microsoft.EntityFrameworkCore
{
public static class AbpModelBuilderExtensions
{
private const string ModelDatabaseProviderAnnotationKey = "_Abp_DatabaseProvider";
public static void SetDatabaseProvider(
this ModelBuilder modelBuilder,
EfCoreDatabaseProvider databaseProvider)
{
modelBuilder.Model.SetAnnotation(ModelDatabaseProviderAnnotationKey, databaseProvider);
}
public static void ClearDatabaseProvider(
this ModelBuilder modelBuilder)
{
modelBuilder.Model.RemoveAnnotation(ModelDatabaseProviderAnnotationKey);
}
public static EfCoreDatabaseProvider? GetDatabaseProvider(
this ModelBuilder modelBuilder
)
{
return (EfCoreDatabaseProvider?) modelBuilder.Model[ModelDatabaseProviderAnnotationKey];
}
public static void UseMySQL(
this ModelBuilder modelBuilder)
{
modelBuilder.SetDatabaseProvider(EfCoreDatabaseProvider.MySql);
}
public static void UseOracle(
this ModelBuilder modelBuilder)
{
modelBuilder.SetDatabaseProvider(EfCoreDatabaseProvider.Oracle);
}
public static void UseSqlServer(
this ModelBuilder modelBuilder)
{
modelBuilder.SetDatabaseProvider(EfCoreDatabaseProvider.SqlServer);
}
public static void UsePostgreSql(
this ModelBuilder modelBuilder)
{
modelBuilder.SetDatabaseProvider(EfCoreDatabaseProvider.PostgreSql);
}
public static void UseSqlite(
this ModelBuilder modelBuilder)
{
modelBuilder.SetDatabaseProvider(EfCoreDatabaseProvider.Sqlite);
}
public static void UseInMemory(
this ModelBuilder modelBuilder)
{
modelBuilder.SetDatabaseProvider(EfCoreDatabaseProvider.InMemory);
}
public static void UseCosmos(
this ModelBuilder modelBuilder)
{
modelBuilder.SetDatabaseProvider(EfCoreDatabaseProvider.Cosmos);
}
public static void UseFirebird(
this ModelBuilder modelBuilder)
{
modelBuilder.SetDatabaseProvider(EfCoreDatabaseProvider.Firebird);
}
}
}
Loading…
Cancel
Save