Exemple #1
0
 public static void ConfigTUserToken <TUserToken, TUser, TKey>(
     this EntityTypeBuilder <TUserToken> builder)
     where TKey : struct, IEquatable <TKey>
     where TUserToken : ApplicationUserToken <TKey, TUser>
     where TUser : class, IEntity <TKey>
 {
     builder.ConfigForICreatorRecordable <TUserToken, TUser, TKey>();
     builder.HasOne(e => e.User)
     .WithMany()
     .HasForeignKey(e => e.UserId);
     builder.ToTable("AppUserTokens");
 }
Exemple #2
0
        /// <summary>
        /// 配置树形领域实体
        /// 包括创建时间、上次修改时间、软删除过滤器、乐观并发检查、自关联导航属性和外键、
        /// 创建人导航属性和外键、上次修改人导航属性和外键
        /// </summary>
        /// <typeparam name="TKey">主键类型</typeparam>
        /// <typeparam name="TEntity">树形实体类型</typeparam>
        /// <typeparam name="TIdentityKey">身份实体主键类型</typeparam>
        /// <typeparam name="TIdentityUser">身份实体类型</typeparam>
        /// <param name="builder">实体类型构造器</param>
        /// <returns>实体类型构造器</returns>
        public static EntityTypeBuilder <TEntity> ConfigForDomainTreeEntityBase <TKey, TEntity, TIdentityKey, TIdentityUser>(this EntityTypeBuilder <TEntity> builder)
            where TKey : struct, IEquatable <TKey>
            where TEntity : DomainTreeEntityBase <TKey, TEntity, TIdentityKey, TIdentityUser>
            where TIdentityUser : class, IEntity <TIdentityKey>
            where TIdentityKey : struct, IEquatable <TIdentityKey>
        {
            builder.ConfigForDomainTreeEntityBase <TKey, TEntity, TIdentityKey>();
            builder.ConfigForICreatorRecordable <TEntity, TIdentityUser, TIdentityKey>();
            builder.ConfigForILastModifierRecordable <TEntity, TIdentityUser, TIdentityKey>();

            return(builder);
        }
Exemple #3
0
 public static void ConfigRoleClaim <TRoleClaim, TUser, TRole, TKey>(
     this EntityTypeBuilder <TRoleClaim> builder)
     where TKey : struct, IEquatable <TKey>
     where TRoleClaim : ApplicationRoleClaim <TKey, TUser, TRole>
     where TUser : class, IEntity <TKey>
     where TRole : class, IEntity <TKey>
 {
     builder.ConfigForIDomainEntity();
     builder.ConfigForICreatorRecordable <TRoleClaim, TUser, TKey>();
     builder.ConfigForILastModifierRecordable <TRoleClaim, TUser, TKey>();
     builder.HasOne(e => e.Role)
     .WithMany()
     .HasForeignKey(e => e.RoleId);
     builder.ToTable("AppRoleClaims");
 }
Exemple #4
0
 public static void ConfigUserClaim <TUserClaim, TUser, TRole, TOrganization, TKey>(
     this EntityTypeBuilder <TUserClaim> builder)
     where TKey : struct, IEquatable <TKey>
     where TUserClaim : ApplicationUserClaim <TKey, TUser>
     where TUser : ApplicationUser <TKey, TUser, TRole, TOrganization>
     where TRole : IEntity <TKey>
     where TOrganization : Organization <TKey, TOrganization, TUser>
 {
     builder.ConfigForIDomainEntity();
     builder.ConfigForICreatorRecordable <TUserClaim, TUser, TKey>();
     builder.ConfigForILastModifierRecordable <TUserClaim, TUser, TKey>();
     builder.HasOne(e => e.User)
     .WithMany()
     .HasForeignKey(e => e.UserId);
     builder.ToTable("AppUserClaims");
 }
 public static void ConfigUser <TKey, TUser, TRole, TUserRole, TUserClaim, TUserLogin, TUserToken, TUserOrganization, TOrganization>(
     this EntityTypeBuilder <TUser> builder)
     where TKey : struct, IEquatable <TKey>
     where TUser : ApplicationUser <TKey, TUser, TRole, TUserRole, TUserClaim, TUserLogin, TUserToken, TUserOrganization, TOrganization>
     where TRole : class, IEntity <TKey>
     where TUserRole : ApplicationUserRole <TKey, TUser, TRole>
     where TUserClaim : ApplicationUserClaim <TKey, TUser>
     where TUserLogin : ApplicationUserLogin <TKey, TUser>
     where TUserToken : ApplicationUserToken <TKey, TUser>
     where TUserOrganization : ApplicationUserOrganization <TKey, TUser, TOrganization, TUserOrganization>
     where TOrganization : Organization <TKey, TOrganization, TUser, TUserOrganization>
 {
     builder.ConfigForIDomainEntity();
     builder.ConfigForIOptimisticConcurrencySupported();
     builder.ConfigForICreatorRecordable <TUser, TUser, TKey>();
     builder.ConfigForILastModifierRecordable <TUser, TUser, TKey>();
     builder.HasMany(e => e.UserOrganizations)
     .WithOne(e => e.User)
     .HasForeignKey(e => e.UserId)
     .IsRequired();
     // Each User can have many UserClaims
     builder.HasMany(e => e.Claims)
     .WithOne(e => e.User)
     .HasForeignKey(uc => uc.UserId)
     .IsRequired();
     // Each User can have many UserLogins
     builder.HasMany(e => e.Logins)
     .WithOne(e => e.User)
     .HasForeignKey(ul => ul.UserId)
     .IsRequired();
     // Each User can have many UserTokens
     builder.HasMany(e => e.Tokens)
     .WithOne(e => e.User)
     .HasForeignKey(ut => ut.UserId)
     .IsRequired();
     // Each User can have many entries in the UserRole join table
     builder.HasMany(e => e.UserRoles)
     .WithOne(e => e.User)
     .HasForeignKey(ur => ur.UserId)
     .IsRequired();
     builder.ToTable("AppUsers");
 }
Exemple #6
0
 public static void ConfigRole <TUser, TRole, TKey>(
     this EntityTypeBuilder <TRole> builder)
     where TKey : struct, IEquatable <TKey>
     where TUser : class, IEntity <TKey>
     where TRole : ApplicationRole <TKey, TUser, TRole>
 {
     builder.ConfigForIDomainTreeEntity <TKey, TRole>();
     builder.ConfigForIOptimisticConcurrencySupported();
     builder.ConfigForICreatorRecordable <TRole, TUser, TKey>();
     builder.ConfigForILastModifierRecordable <TRole, TUser, TKey>();
     // Each Role can have many entries in the UserRole join table
     builder.HasMany(e => e.UserRoles)
     .WithOne(e => e.Role)
     .HasForeignKey(ur => ur.RoleId)
     .IsRequired();
     // Each Role can have many associated RoleClaims
     builder.HasMany(e => e.RoleClaims)
     .WithOne(e => e.Role)
     .HasForeignKey(rc => rc.RoleId)
     .IsRequired();
     builder.ToTable("AppRoles");
 }