using System.Data.Entity; namespace CK.SCP.Models.AppBoxEntity { public class AppBoxContext : DbContext { public AppBoxContext() : base(EntitiesFactory.GetEfConnectionString(GlobalConfig.AppBoxDatabase)) { } public AppBoxContext(string strConn) : base(strConn) { } public DbSet Configs { get; set; } public DbSet Depts { get; set; } public DbSet Users { get; set; } public DbSet Roles { get; set; } public DbSet Titles { get; set; } public DbSet<Online> Onlines { get; set; } public DbSet<Log> Logs { get; set; } public DbSet<Power> Powers { get; set; } public DbSet<Menu> Menus { get; set; } public DbSet<TA_ADDRESS> TA_ADDRESS { get; set; } public DbSet<TA_FACTORY> TA_FACTORY { get; set; } public DbSet<VenderUsers> VenderUsers { get; set; } public DbSet<FactoryUsers> FactoryUsers { get; set; } public DbSet<UserToken> UserTokens { get; set; } protected override void OnModelCreating(DbModelBuilder modelBuilder) { base.OnModelCreating(modelBuilder); modelBuilder.Entity<TA_FACTORY>() .HasMany(r => r.Users) .WithMany(u => u.TA_FACTORY) .Map(x => x.ToTable("FactoryUsers") .MapLeftKey("FACTORY_ID") .MapRightKey("UserID")); modelBuilder.Entity<Role>() .HasMany(r => r.Users) .WithMany(u => u.Roles) .Map(x => x.ToTable("RoleUsers") .MapLeftKey("RoleID") .MapRightKey("UserID")); modelBuilder.Entity<Title>() .HasMany(t => t.Users) .WithMany(u => u.Titles) .Map(x => x.ToTable("TitleUsers") .MapLeftKey("TitleID") .MapRightKey("UserID")); modelBuilder.Entity<Dept>() .HasOptional(d => d.Parent) .WithMany(d => d.Children) .Map(x => x.MapKey("ParentID")); modelBuilder.Entity<Dept>() .HasMany(d => d.Users) .WithOptional(u => u.Dept) .Map(x => x.MapKey("DeptID")); modelBuilder.Entity<Online>() .HasRequired(o => o.User) .WithMany() .Map(x => x.MapKey("UserID")); modelBuilder.Entity<Menu>() .HasOptional(m => m.Parent) .WithMany(m => m.Children) .Map(x => x.MapKey("ParentID")); //modelBuilder.Entity<Menu>() // .HasOptional(m => m.Module) // .WithMany() // .Map(x => x.MapKey("ModuleID")); //modelBuilder.Entity<Module>() // .HasMany(m => m.ModulePowers) // .WithRequired(mp => mp.Module); //modelBuilder.Entity<Power>() // .HasMany(p => p.ModulePowers) // .WithRequired(mp => mp.Power); modelBuilder.Entity<Menu>() .HasOptional(m => m.ViewPower) .WithMany() .Map(x => x.MapKey("ViewPowerID")); modelBuilder.Entity<Role>() .HasMany(r => r.Powers) .WithMany(p => p.Roles) .Map(x => x.ToTable("RolePowers") .MapLeftKey("RoleID") .MapRightKey("PowerID")); } } }