我试图在代码中首先创建具有多对多关系的新表。 我有两个表:用户和项目。现在,我希望这两个表有很多关系。所以我这样做:
public class Project
{
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public string PositionCount { get; set; }
public bool IsActive { get; set; }
public virtual ICollection<User> Users { get; set; }
}
public class User : IdentityUser<Guid, UserLogin, UserRole, UserClaim>
{
public override Guid Id { get; set; }
public string Tags { get; set; }
public User()
{
Id = Guid.NewGuid();
}
public async Task<ClaimsIdentity> GenerateUserIdentityAsync(UserManager<User, Guid> 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;
}
public virtual ICollection<Project> Projects { get; set; }
}
public class RecruitmentDbContext : IdentityDbContext<User, MyRole, Guid, UserLogin, UserRole, UserClaim>
{
public DbSet<Project> Projects { get; set; }
public DbSet<UserProject> UserProjects { get;set; }
public RecruitmentDbContext()
: base("RecruitmentDB")
{
}}
我在这个page上看到,这足以创建具有多对多关系的新表。这是事实,因为一切正常。但是我想在这个自动生成的表中添加新列,名称为“ApplicationStatus”。我需要这个专栏,因为我需要知道,如果对于当前用户,当前项目具有当前状态:)
总结: 我希望有一个表有多对多关系的表,还有一个名为ApplicationStatus的附加列。是否有可能在自动生成的表上得到这个,或者我应该以某种方式手工创建它?
答案 0 :(得分:1)
是的,这是可能的。这应该有所帮助。
Entity Framework : Customized Join Table in a Many to Many Relationship