using System; using System.Data.Entity; using System.ComponentModel.DataAnnotations.Schema; using System.Linq; using System.Data.Entity.Migrations; using System.Data.SQLite.EF6.Migrations; namespace CircleScape.DAL { public partial class ScapeDb : DbContext { static ScapeDb() { Database.SetInitializer( new MigrateDatabaseToLatestVersion(true) ); } public ScapeDb() : base("name=Database") { } public virtual DbSet Sessions { get; set; } public virtual DbSet Users { get; set; } public virtual DbSet Items { get; set; } public virtual DbSet ItemDefinitions { get; set; } protected override void OnModelCreating(DbModelBuilder modelBuilder) { modelBuilder.Entity() .HasMany(e => e.Sessions) .WithRequired(e => e.User) .HasForeignKey(e => e.UserId) .WillCascadeOnDelete(true); modelBuilder.Entity() .HasMany(e => e.Items) .WithRequired(e => e.User) .HasForeignKey(e => e.UserId) .WillCascadeOnDelete(true); modelBuilder.Entity() .HasMany(e => e.Items) .WithRequired(e => e.Definition) .HasForeignKey(e => e.DefinitionId) .WillCascadeOnDelete(true); } } internal sealed class ScapeDbMigrationConfig : DbMigrationsConfiguration { public ScapeDbMigrationConfig() { AutomaticMigrationsEnabled = true; AutomaticMigrationDataLossAllowed = true; SetSqlGenerator("System.Data.SQLite", new SQLiteMigrationSqlGenerator()); } } }