diff --git a/src/FilterLists.Data/Contexts/FilterListsDbContext.cs b/src/FilterLists.Data/Contexts/FilterListsDbContext.cs index 36019cf70..f35594be4 100644 --- a/src/FilterLists.Data/Contexts/FilterListsDbContext.cs +++ b/src/FilterLists.Data/Contexts/FilterListsDbContext.cs @@ -11,6 +11,9 @@ public FilterListsDbContext(DbContextOptions options) { } + public DbSet FilterListLanguages { get; set; } + + public DbSet FilterLists { get; set; } public DbSet Maintainers { get; set; } public DbSet Languages { get; set; } @@ -20,6 +23,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) modelBuilder.ApplyConfiguration(new FilterListTypeConfiguration()); modelBuilder.ApplyConfiguration(new MaintainerTypeConfiguration()); modelBuilder.ApplyConfiguration(new LanguageTypeConfiguration()); + modelBuilder.ApplyConfiguration(new FilterListLanguageTypeConfiguration()); } } } \ No newline at end of file diff --git a/src/FilterLists.Data/Entities/FilterList.cs b/src/FilterLists.Data/Entities/FilterList.cs index 3828f1076..a878e7b68 100644 --- a/src/FilterLists.Data/Entities/FilterList.cs +++ b/src/FilterLists.Data/Entities/FilterList.cs @@ -11,7 +11,7 @@ public class FilterList : BaseEntity public string ForumUrl { get; set; } public string HomeUrl { get; set; } public string IssuesUrl { get; set; } - public ICollection Languages { get; set; } + public ICollection FilterListLanguages { get; set; } public int MaintainerId { get; set; } public string Name { get; set; } public string ViewUrl { get; set; } diff --git a/src/FilterLists.Data/Entities/FilterListLanguage.cs b/src/FilterLists.Data/Entities/FilterListLanguage.cs new file mode 100644 index 000000000..f0dcec2a2 --- /dev/null +++ b/src/FilterLists.Data/Entities/FilterListLanguage.cs @@ -0,0 +1,11 @@ +namespace FilterLists.Data.Entities +{ + public class FilterListLanguage : BaseEntity + { + public int FilterListId { get; set; } + public FilterList FilterList { get; set; } + + public int LanguageId { get; set; } + public Language Language { get; set; } + } +} \ No newline at end of file diff --git a/src/FilterLists.Data/Entities/Language.cs b/src/FilterLists.Data/Entities/Language.cs index 974ccdaed..26cc64ac7 100644 --- a/src/FilterLists.Data/Entities/Language.cs +++ b/src/FilterLists.Data/Entities/Language.cs @@ -4,7 +4,7 @@ namespace FilterLists.Data.Entities { public class Language : BaseEntity { - public ICollection FilterLists { get; set; } + public ICollection FilterListLanguages { get; set; } public string Iso6391 { get; set; } public string Iso6392 { get; set; } public string Iso6392B { get; set; } diff --git a/src/FilterLists.Data/EntityTypeConfigurations/FilterListLanguageTypeConfiguration.cs b/src/FilterLists.Data/EntityTypeConfigurations/FilterListLanguageTypeConfiguration.cs new file mode 100644 index 000000000..74d229d4c --- /dev/null +++ b/src/FilterLists.Data/EntityTypeConfigurations/FilterListLanguageTypeConfiguration.cs @@ -0,0 +1,18 @@ +using FilterLists.Data.Entities; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Metadata.Builders; + +namespace FilterLists.Data.EntityTypeConfigurations +{ + public class FilterListLanguageTypeConfiguration : BaseEntityTypeConfiguration + { + public override void Configure(EntityTypeBuilder entityTypeBuilder) + { + entityTypeBuilder.ToTable("filter_lists_languages"); + + entityTypeBuilder.HasKey(x => new {x.FilterListId, x.LanguageId}); + + base.Configure(entityTypeBuilder); + } + } +} \ No newline at end of file diff --git a/src/FilterLists.Data/EntityTypeConfigurations/LanguageTypeConfiguration.cs b/src/FilterLists.Data/EntityTypeConfigurations/LanguageTypeConfiguration.cs index 4df0b5810..a67be5b78 100644 --- a/src/FilterLists.Data/EntityTypeConfigurations/LanguageTypeConfiguration.cs +++ b/src/FilterLists.Data/EntityTypeConfigurations/LanguageTypeConfiguration.cs @@ -1,5 +1,4 @@ using FilterLists.Data.Entities; -using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Metadata.Builders; namespace FilterLists.Data.EntityTypeConfigurations