2014-10-27 2 views
0

У меня есть кандидат, который может (или не может) иметь много JobTypes, я бы ожидал промежуточную таблицу из CandidateJobTypes.Код элемента Entity Framework Первый нуль для многих

Это отношение от нуля до многих.

Как это было бы смоделировано с использованием кода 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 
} 

ответ

1

Определите его как один для многих. Никто не заботится о том, что коллекция пуста.

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

Почему вам нужно что-нибудь в OnModelCreating? Вы следовали за соглашением. Все должно работать нормально

+0

Я получаю следующее сообщение об ошибке, когда нет ничего в OnModelCreating и я пытаюсь сохранить: Первый шанс исключение типа «System.InvalidOperationException» произошло в EntityFramework.dll Дополнительная информация: Объект типа 'System.Collections.ObjectModel.Collection'1 [[Temps.Models.CandidateJobType, Temps, Version = 1.0.0.0, Culture = neutral, PublicKeyToken = null]]' нельзя установить или удалить из свойства Value EntityReference типа 'Temps.Models.CandidateJobType. – Burt

Смежные вопросы