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"); }
/// <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); }
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"); }
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"); }
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"); }