forked from msallin/SQLiteCodeFirst
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathModelConfiguration.cs
More file actions
66 lines (58 loc) · 2.16 KB
/
ModelConfiguration.cs
File metadata and controls
66 lines (58 loc) · 2.16 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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
using System.Data.Entity;
using SQLite.CodeFirst.Console.Entity;
namespace SQLite.CodeFirst.Console
{
public class ModelConfiguration
{
public static void Configure(DbModelBuilder modelBuilder)
{
ConfigureTeamEntity(modelBuilder);
ConfigureStadionEntity(modelBuilder);
ConfigureCoachEntity(modelBuilder);
ConfigurePlayerEntity(modelBuilder);
ConfigureSelfReferencingEntities(modelBuilder);
ConfigureCompositeKeyEntities(modelBuilder);
}
private static void ConfigureTeamEntity(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Team>().ToTable("Base.MyTable")
.HasRequired(t => t.Coach)
.WithMany()
.WillCascadeOnDelete(false);
modelBuilder.Entity<Team>()
.HasRequired(t => t.Stadion)
.WithRequiredPrincipal()
.WillCascadeOnDelete(true);
}
private static void ConfigureStadionEntity(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Stadion>();
}
private static void ConfigureCoachEntity(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Coach>()
.HasRequired(p => p.Team)
.WithRequiredPrincipal(t => t.Coach)
.WillCascadeOnDelete(false);
}
private static void ConfigurePlayerEntity(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Player>()
.HasRequired(p => p.Team)
.WithMany(team => team.Players)
.WillCascadeOnDelete(true);
}
private static void ConfigureSelfReferencingEntities(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Foo>();
modelBuilder.Entity<FooSelf>();
modelBuilder.Entity<FooStep>();
}
private static void ConfigureCompositeKeyEntities(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<FooCompositeKey>();
modelBuilder.Entity<FooRelationshipA>();
modelBuilder.Entity<FooRelationshipB>();
}
}
}