From f714e54dba371f7398aecbff824f73d529d038f0 Mon Sep 17 00:00:00 2001 From: Aryadev Chavali Date: Fri, 8 Feb 2019 11:48:44 +0000 Subject: Used scaffolding to get Database object --- Database/Database.cs | 136 +++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 110 insertions(+), 26 deletions(-) (limited to 'Database/Database.cs') diff --git a/Database/Database.cs b/Database/Database.cs index 551ca5d..100a9af 100644 --- a/Database/Database.cs +++ b/Database/Database.cs @@ -1,26 +1,110 @@ -using System; -using System.Threading; -using System.Threading.Tasks; -using System.Collections.Generic; - - -using Microsoft.EntityFrameworkCore; -using MySql.Data.EntityFrameworkCore; - -using Classes; - -namespace Database { - public class DatabaseContext : DbContext { - public DatabaseContext() { - Details = Task.Run(async () => await DetailsHelper.GetDetails()).GetAwaiter().GetResult(); - } - public DbSet
Articles; - public DbSet Configs; - public Dictionary Details; - - protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { - base.OnConfiguring(optionsBuilder); - optionsBuilder.UseMySQL($"server=localhost;port=3306;user={Details["username"]};password={Details["password"]};database={Details["database"]}"); - } - } -} +using System; +using System.Threading.Tasks; +using System.Collections.Generic; + +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Metadata; +using Classes; + +namespace Database.Database { + public partial class DatabaseContext : DbContext { + private Dictionary Details; + + public DatabaseContext() { + Details = Task.Run(async () => await DetailsHelper.GetDetails()).GetAwaiter().GetResult(); + } + + public DatabaseContext(DbContextOptions options) + : base(options) { + Details = Task.Run(async () => await DetailsHelper.GetDetails()).GetAwaiter().GetResult(); + } + + public virtual DbSet
Articles { get; set; } + public virtual DbSet Configs { get; set; } + + protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { + if (!optionsBuilder.IsConfigured) { + optionsBuilder.UseMySQL($"server=localhost;port=3306;user={Details["username"]};password={Details["password"]};database={Details["database"]}"); + } + } + + protected override void OnModelCreating(ModelBuilder modelBuilder) { + modelBuilder.HasAnnotation("ProductVersion", "2.2.1-servicing-10028"); + + modelBuilder.Entity
(entity => { + entity.HasKey(e => e.ArticleID); + + entity.ToTable("articles", "news_aggregator"); + + entity.Property(e => e.ArticleID) + .HasColumnName("article_id") + .HasColumnType("int(11)") + .ValueGeneratedNever(); + + entity.Property(e => e.ArticleLink) + .HasColumnName("article_link") + .HasMaxLength(64) + .IsUnicode(false); + + entity.Property(e => e.Description) + .HasColumnName("description") + .HasMaxLength(255) + .IsUnicode(false); + + entity.Property(e => e.ImageLink) + .HasColumnName("image_link") + .HasMaxLength(128) + .IsUnicode(false); + + entity.Property(e => e.PublishDate) + .HasColumnName("publish_date") + .HasColumnType("date"); + + entity.Property(e => e.Source) + .HasColumnName("source") + .HasMaxLength(8) + .IsUnicode(false); + + entity.Property(e => e.Title) + .HasColumnName("title") + .HasMaxLength(255) + .IsUnicode(false); + }); + + modelBuilder.Entity(entity => { + entity.HasKey(e => e.ConfigID); + + entity.ToTable("configs", "news_aggregator"); + + entity.Property(e => e.ConfigID) + .HasColumnName("config_id") + .HasColumnType("int(11)") + .ValueGeneratedNever(); + + entity.Property(e => e.ArticleLink) + .HasColumnName("article_link") + .HasColumnType("int(11)"); + + entity.Property(e => e.Description) + .HasColumnName("description") + .HasColumnType("int(11)"); + + entity.Property(e => e.ImageLink) + .HasColumnName("image_link") + .HasColumnType("int(11)"); + + entity.Property(e => e.PublishDate) + .HasColumnName("publish_date") + .HasColumnType("int(11)"); + + entity.Property(e => e.Source) + .HasColumnName("source") + .HasColumnType("int(11)"); + + entity.Property(e => e.Title) + .HasColumnName("title") + .HasColumnType("int(11)"); + }); + } + } +} -- cgit v1.2.3-13-gbd6f