实体框架代码First Zero to Many

时间:2014-10-27 20:06:48

标签: entity-framework

我有一个能够(或不能)拥有多个JobTypes的候选人,我希望有一个CandidateJobTypes的中间表。

这是零对多的关系。

如何首先使用Entity Framework代码建模?

模型

public class Candidate
{
    [Required]
    public long CandidateId { get; set; }

    public ICollection<CandidateJobType> CandidateJobTypes { get; set; }
}

public class CandidateJobType
{
    public long Id { get; set; }

    public long CandidateId { get; set; }

    public virtual Candidate Candidate { get; set; }

    public long JobTypeId { get; set; }

    public virtual JobType JobType { get; set; }
}

public class JobType
{
    public long Id { get; set; }

    [Required]
    public string Text { get; set; }

    public long? ParentJobTypeId { get; set; }

    public virtual JobType ParentJobType { get; set; }
}

OnModelCreating

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
    // not sure what goes in here
}

2 个答案:

答案 0 :(得分:1)

为什么你需要OnModelCreating中的任何内容?你遵循惯例就好了。一切都应该工作得很好

答案 1 :(得分:1)

将其定义为一对多。没有人关心这个系列是空的。

modelBuilder.Entity<CandidateJobType>()
    .HasRequired(m => m.Candidate)
    .WithMany(m = m.CandidateJobTypes);