EntityFramework.cs 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. using System;
  2. using System.Data.Entity;
  3. using System.Data.Entity.ModelConfiguration.Configuration.Types;
  4. using System.Data.Entity.ModelConfiguration.Conventions;
  5. namespace Benchmarks.Mono.AspNet.Models
  6. {
  7. public class EntityFramework : DbContext
  8. {
  9. public DbSet<World> Worlds { get; set; }
  10. public DbSet<Fortune> Fortunes { get; set; }
  11. public EntityFramework(string providerName)
  12. : base(providerName)
  13. {
  14. }
  15. protected override void OnModelCreating(DbModelBuilder modelBuilder)
  16. {
  17. modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
  18. if (Database.Connection is Npgsql.NpgsqlConnection)
  19. {
  20. modelBuilder.HasDefaultSchema("public");
  21. modelBuilder.Conventions.Add<LowerCaseConfigurationConvention>();
  22. }
  23. }
  24. private class LowerCaseConfigurationConvention : IConfigurationConvention<Type, EntityTypeConfiguration>
  25. {
  26. public void Apply(Type memberInfo, Func<EntityTypeConfiguration> configuration)
  27. {
  28. configuration().ToTable(memberInfo.Name.ToLowerInvariant(), null);
  29. }
  30. }
  31. }
  32. }