Archived
Private
Public Access
1
0
This repository has been archived on 2026-02-04. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
ProjectManager/ProjectManager.Backend/DatabaseContext.cs
2022-12-18 13:30:02 +01:00

49 lines
1.6 KiB
C#

using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Options;
using ProjectManager.Backend.Entities;
using ProjectManager.Backend.Options;
namespace ProjectManager.Backend;
public class DatabaseContext : DbContext {
private readonly GeneralOptions _options;
public DbSet<User> Users { get; set; }
public DbSet<UserToken> Tokens { get; set; }
public DbSet<Project> Projects { get; set; }
public DatabaseContext(IOptions<GeneralOptions> options) {
_options = options.Value;
}
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) {
optionsBuilder.UseMySQL(_options.Database);
}
protected override void OnModelCreating(ModelBuilder modelBuilder) {
base.OnModelCreating(modelBuilder);
modelBuilder.Entity<User>(entry => {
entry.HasKey(e => e.UserId);
entry.Property(e => e.Email);
entry.Property(e => e.Username);
entry.Property(e => e.Password);
entry.Property(e => e.MaxProjects);
});
modelBuilder.Entity<UserToken>(entry => {
entry.HasKey(e => e.TokenId);
entry.Property(e => e.UserId);
entry.Property(e => e.ClientIp);
entry.Property(e => e.Created);
});
modelBuilder.Entity<Project>(entry => {
entry.HasKey(e => e.ProjectId);
entry.Property(e => e.OwnerId);
entry.Property(e => e.Name);
entry.Property(e => e.Port);
entry.Property(e => e.ContainerName);
});
}
}