75 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			75 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| using System;
 | |
| using System.Collections.Generic;
 | |
| using Datamodels.Lookups;
 | |
| using Datamodels.DatabaseModels;
 | |
| using Microsoft.EntityFrameworkCore;
 | |
| using Microsoft.Extensions.Configuration;
 | |
| 
 | |
| namespace Repositories
 | |
| {
 | |
|     public class FwDbContext: DbContext
 | |
|     {
 | |
|         public string _connectionString { get; set; } = "SERVER=127.0.0.1;DATABASE=testdb;PORT=3306;USER=root;PASSWORD=example";
 | |
| 
 | |
|         protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
 | |
|         {
 | |
| 
 | |
|             optionsBuilder.UseMySql(_connectionString, ServerVersion.AutoDetect(_connectionString));
 | |
|         }
 | |
| 
 | |
|         public DbSet<LookupCategory> LookupCategories { get; set; }
 | |
|         public DbSet<LookupValue> LookupValues { get; set; }
 | |
|         public DbSet<Address> Address { get; set; }
 | |
|         public DbSet<Person> Person { get; set; }
 | |
|         public DbSet<Communication> Communication { get; set; }
 | |
| 
 | |
|         protected override void OnModelCreating(ModelBuilder modelBuilder)
 | |
|         {
 | |
| 
 | |
|             modelBuilder.Entity<LookupValue>()
 | |
|                 .HasKey(x => x.Id);
 | |
| 
 | |
|             modelBuilder.Entity<LookupValue>()
 | |
|                 .Property(x => x.Id).ValueGeneratedOnAdd();
 | |
| 
 | |
|             modelBuilder.Entity<LookupCategory>()
 | |
|                 .HasKey(x => x.Id);
 | |
| 
 | |
|             modelBuilder.Entity<LookupCategory>()
 | |
|                 .Property(x => x.Id).ValueGeneratedOnAdd();
 | |
| 
 | |
|             modelBuilder.Entity<LookupCategory>()
 | |
|                 .HasMany(x => x.LookupValues)
 | |
|                 .WithOne(y => y.LookupCategory);
 | |
| 
 | |
|             modelBuilder.Entity<Person>()
 | |
|                 .Property(x => x.Id).ValueGeneratedOnAdd();
 | |
| 
 | |
|             modelBuilder.Entity<Person>()
 | |
|                 .HasKey(x => x.Id);
 | |
| 
 | |
|             modelBuilder.Entity<Person>()
 | |
|                 .HasMany(x => x.Communications)
 | |
|                 .WithOne(y => y.Person);
 | |
| 
 | |
|             modelBuilder.Entity<Person>()
 | |
|                 .HasMany(x => x.Addresses)
 | |
|                 .WithOne(y => y.Person);
 | |
| 
 | |
|             modelBuilder.Entity<Address>()
 | |
|                 .Property(x => x.Id).ValueGeneratedOnAdd();
 | |
|             
 | |
|             modelBuilder.Entity<Address>()
 | |
|                 .HasKey(x => x.Id);
 | |
| 
 | |
|             modelBuilder.Entity<Communication>()
 | |
|                 .Property(x => x.Id).ValueGeneratedOnAdd();
 | |
| 
 | |
|             modelBuilder.Entity<Communication>()
 | |
|                 .HasKey(x => x.Id);
 | |
|             
 | |
|         }
 | |
| 
 | |
|     }
 | |
| }
 |