| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169 |
- using System.Data.Common;
- using System.Data.Entity;
- using System.Data.Entity.Core.Objects;
- using System.Data.Entity.Infrastructure;
- using Abp.EntityFramework;
- using Abp.Notifications;
- using IwbZero.Authorization.Base.Permissions;
- using IwbZero.Authorization.Base.SystemInfo;
- using IwbZero.Authorization.Base.Users;
- using IwbZero.Authorization.Roles;
- using IwbZero.Authorization.Users;
- namespace IwbZero.EntityFramework
- {
- public abstract class IwbZeroCommonDbContext<TRole, TUser> : AbpDbContext
- where TRole : IwbSysRole<TUser>
- where TUser : IwbSysUser<TUser>
- {
- #region BaseSysInfo
- //public virtual IDbSet<IwbSysAttachFile<TUser>> SysAttachFiles { get; set; }
- //public virtual IDbSet<IwbSysFunction<TUser>> SysFunctions { get; set; }
- //public virtual IDbSet<IwbSysHelp<TUser>> SysHelps { get; set; }
- //public virtual IDbSet<IwbSysState<TUser>> SysStates { get; set; }
- public virtual IDbSet<SysAppGuid> SysAppGuids { get; set; }
- public virtual IDbSet<SysLog> SysLogs { get; set; }
- public virtual IDbSet<SysSetting> Settings { get; set; }
- #endregion
- /// <summary>
- /// Roles.
- /// </summary>
- public virtual IDbSet<TRole> Roles { get; set; }
- /// <summary>
- /// Users.
- /// </summary>
- public virtual IDbSet<TUser> Users { get; set; }
- /// <summary>
- /// User logins.
- /// </summary>
- public virtual IDbSet<UserLogin> UserLogins { get; set; }
- /// <summary>
- /// User login attempts.
- /// </summary>
- public virtual IDbSet<UserLoginAttempt> UserLoginAttempts { get; set; }
- /// <summary>
- /// User roles.
- /// </summary>
- public virtual IDbSet<UserRole> UserRoles { get; set; }
- /// <summary>
- /// User claims.
- /// </summary>
- public virtual IDbSet<UserClaim> UserClaims { get; set; }
- /// <summary>
- /// Permissions.
- /// </summary>
- public virtual IDbSet<PermissionSetting> Permissions { get; set; }
- public virtual IDbSet<DataPermission> DataPermissions { get; set; }
- /// <summary>
- /// Notifications.
- /// </summary>
- public virtual IDbSet<NotificationInfo> Notifications { get; set; }
- /// <summary>
- /// Tenant notifications.
- /// </summary>
- public virtual IDbSet<TenantNotificationInfo> TenantNotifications { get; set; }
- /// <summary>
- /// User notifications.
- /// </summary>
- public virtual IDbSet<UserNotificationInfo> UserNotifications { get; set; }
- /// <summary>
- /// Notification subscriptions.
- /// </summary>
- public virtual IDbSet<NotificationSubscriptionInfo> NotificationSubscriptions { get; set; }
- /// <summary>
- /// Default constructor.
- /// Do not directly instantiate this class. Instead, use dependency injection!
- /// </summary>
- protected IwbZeroCommonDbContext()
- {
- }
- /// <summary>
- /// Constructor with connection string parameter.
- /// </summary>
- /// <param name="nameOrConnectionString">Connection string or a name in connection strings in configuration file</param>
- protected IwbZeroCommonDbContext(string nameOrConnectionString)
- : base(nameOrConnectionString)
- {
- }
- protected IwbZeroCommonDbContext(DbCompiledModel model)
- : base(model)
- {
- }
- /// <summary>
- /// This constructor can be used for unit tests.
- /// </summary>
- protected IwbZeroCommonDbContext(DbConnection existingConnection, bool contextOwnsConnection)
- : base(existingConnection, contextOwnsConnection)
- {
- }
- protected IwbZeroCommonDbContext(string nameOrConnectionString, DbCompiledModel model)
- : base(nameOrConnectionString, model)
- {
- }
- protected IwbZeroCommonDbContext(ObjectContext objectContext, bool dbContextOwnsObjectContext)
- : base(objectContext, dbContextOwnsObjectContext)
- {
- }
- /// <summary>
- /// Constructor.
- /// </summary>
- protected IwbZeroCommonDbContext(DbConnection existingConnection, DbCompiledModel model, bool contextOwnsConnection)
- : base(existingConnection, model, contextOwnsConnection)
- {
- }
- /// <summary>
- ///
- /// </summary>
- /// <param name="modelBuilder"></param>
- protected override void OnModelCreating(DbModelBuilder modelBuilder)
- {
- base.OnModelCreating(modelBuilder);
- var prefix = "Sys_";
- SetTableName<NotificationInfo>(modelBuilder, prefix + "Notifications");
- SetTableName<NotificationSubscriptionInfo>(modelBuilder, prefix + "NotificationSubscriptions");
- SetTableName<TenantNotificationInfo>(modelBuilder, prefix + "NotificationTenants");
- SetTableName<UserNotificationInfo>(modelBuilder, prefix + "NotificationUsers");
- modelBuilder.Entity<SysSetting>()
- .HasIndex(e => new { e.TenantId, e.Name, e.UserId })
- .IsUnique();
- }
- private static void SetTableName<TEntity>(DbModelBuilder modelBuilder, string tableName)
- where TEntity : class
- {
- modelBuilder.Entity<TEntity>().ToTable(tableName);
- }
- }
- }
|