Exemple #1
0
        /// <summary>
        /// 配置领域实体
        /// 包括创建时间、上次修改时间、软删除过滤器、乐观并发检查
        /// </summary>
        /// <typeparam name="TKey">主键类型</typeparam>
        /// <typeparam name="TEntity">实体类型</typeparam>
        /// <param name="builder">实体类型构造器</param>
        /// <returns>实体类型构造器</returns>
        public static EntityTypeBuilder <TEntity> ConfigForDomainEntityBase <TKey, TEntity>(this EntityTypeBuilder <TEntity> builder)
            where TKey : struct, IEquatable <TKey>
            where TEntity : DomainEntityBase <TKey>
        {
            builder.ConfigForIDomainEntity();
            builder.ConfigForIOptimisticConcurrencySupported();

            return(builder);
        }
 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 #3
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");
 }