我想知道如何使用来自 ASP.NET 的身份,以便创建用于链接 2 个不同表的表。
例如,我们有ASP。网络用户和 ASP。网络角色。默认标识提供者将生成 ASP。NetUsers用于存储分配给用户的角色的角色。
我想对另外 2 张表做同样的事情。假设我有默认用户表和一个名为 Context 的表。
我想要ASP。网络用户、上下文和 ASP。NetUsers用于链接用户一个或多个上下文的上下文。
我现在拥有的是上下文表,在用户表中有一个外键 Asp.Net 我想摆脱并使用关系表。可能吗?
这就是我现在拥有它的方式:
public class ApplicationUser : IdentityUser
{
public virtual ApplicationUserProfile UserProfile {get;set;}
public virtual ICollection<ApplicationUserContext> UserContext { get; set; }
public async Task<ClaimsIdentity> GenerateUserIdentityAsync(UserManager<ApplicationUser> manager)
{
// Note the authenticationType must match the one defined in CookieAuthenticationOptions.AuthenticationType
var userIdentity = await manager.CreateIdentityAsync(this, DefaultAuthenticationTypes.ApplicationCookie);
// Add custom user claims here
return userIdentity;
}
}
谢谢!
给定您拥有的代码,您需要在 ApplicationUserContext 类中添加以下内容:
public virtual ICollection<ApplicationUser> Users {get;set;}
您还需要确保 dbcontext 类具有返回 ApplicationUserContext 类型的数据库集的属性:
public DbSet<ApplicationUserContext> Courses { get; set; }
它可能已经有了这个。
这样做是在两个类之间建立多对多关系,EF 将生成一个映射表来跟踪此关系。