-
-
Notifications
You must be signed in to change notification settings - Fork 163
Expand file tree
/
Copy pathOperationsDbContext.cs
More file actions
33 lines (27 loc) · 1.18 KB
/
OperationsDbContext.cs
File metadata and controls
33 lines (27 loc) · 1.18 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
using JetBrains.Annotations;
using Microsoft.EntityFrameworkCore;
using TestBuildingBlocks;
// @formatter:wrap_chained_method_calls chop_always
namespace JsonApiDotNetCoreTests.IntegrationTests.AtomicOperations;
[UsedImplicitly(ImplicitUseTargetFlags.Members)]
public sealed class OperationsDbContext(DbContextOptions<OperationsDbContext> options)
: TestableDbContext(options)
{
public DbSet<Playlist> Playlists => Set<Playlist>();
public DbSet<MusicTrack> MusicTracks => Set<MusicTrack>();
public DbSet<Lyric> Lyrics => Set<Lyric>();
public DbSet<TextLanguage> TextLanguages => Set<TextLanguage>();
public DbSet<Performer> Performers => Set<Performer>();
public DbSet<RecordCompany> RecordCompanies => Set<RecordCompany>();
protected override void OnModelCreating(ModelBuilder builder)
{
builder.Entity<MusicTrack>()
.HasOne(musicTrack => musicTrack.Lyric)
.WithOne(lyric => lyric.Track)
.HasForeignKey<MusicTrack>("LyricId");
builder.Entity<MusicTrack>()
.HasMany(musicTrack => musicTrack.OccursIn)
.WithMany(playlist => playlist.Tracks);
base.OnModelCreating(builder);
}
}