-
-
Notifications
You must be signed in to change notification settings - Fork 163
Expand file tree
/
Copy pathModelStateDbContext.cs
More file actions
39 lines (31 loc) · 1.33 KB
/
ModelStateDbContext.cs
File metadata and controls
39 lines (31 loc) · 1.33 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
34
35
36
37
38
39
using JetBrains.Annotations;
using Microsoft.EntityFrameworkCore;
using TestBuildingBlocks;
// @formatter:wrap_chained_method_calls chop_always
namespace JsonApiDotNetCoreTests.IntegrationTests.InputValidation.ModelState;
[UsedImplicitly(ImplicitUseTargetFlags.Members)]
public sealed class ModelStateDbContext(DbContextOptions<ModelStateDbContext> options)
: TestableDbContext(options)
{
public DbSet<SystemVolume> Volumes => Set<SystemVolume>();
public DbSet<SystemDirectory> Directories => Set<SystemDirectory>();
public DbSet<SystemFile> Files => Set<SystemFile>();
protected override void OnModelCreating(ModelBuilder builder)
{
builder.Entity<SystemVolume>()
.HasOne(systemVolume => systemVolume.RootDirectory)
.WithOne()
.HasForeignKey<SystemVolume>("RootDirectoryId")
.IsRequired();
builder.Entity<SystemDirectory>()
.HasMany(systemDirectory => systemDirectory.Subdirectories)
.WithOne(systemDirectory => systemDirectory.Parent);
builder.Entity<SystemDirectory>()
.HasOne(systemDirectory => systemDirectory.Self)
.WithOne();
builder.Entity<SystemDirectory>()
.HasOne(systemDirectory => systemDirectory.AlsoSelf)
.WithOne();
base.OnModelCreating(builder);
}
}