代码首先EF 6自动生成关系表与附加列

时间:2018-02-20 18:34:38

标签: asp.net-mvc ef-code-first

我试图在代码中首先创建具有多对多关系的新表。 我有两个表:用户和项目。现在,我希望这两个表有很多关系。所以我这样做:

    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的附加列。是否有可能在自动生成的表上得到这个,或者我应该以某种方式手工创建它?

1 个答案:

答案 0 :(得分:1)

是的,这是可能的。这应该有所帮助。

Entity Framework : Customized Join Table in a Many to Many Relationship