2014-02-18 2 views
2

Можно ли загрузить ProjectManager по ForeignKey при использовании егоEntity Framework загрузки внешних ключей с HasOptional

this.HasOptional(t => t.ProjectManager) 
      .WithMany() 
      .WillCascadeOnDelete(false) 

Я пытался делать следующее, и Управление проектами по-прежнему возвращается как null

var entities = _context.EodRecords 
      .Include(r =>r.ProjectManager) 
      .Include(r => r.RecordLanguages) 
      .Include(r => r.Department); 
+0

также показать полный запрос как то, что вы выбираете может повлиять ли 'Include' ничего не делает – Moho

ответ

3

Вы надеваете» t, по-видимому, указал внешний ключ

this.HasOptional(t => t.ProjectManager) 
    .WithMany() 
    .HasForeignKey(t => t.ProjectManagerId) 
    .WillCascadeOnDelete(false); 

На основании вашей ошибки

Contexts.Record_ProjectManager:: Кратность конфликты с реляционным ограничением в ролях 'Record_ProjectManager_Target' в отношениях 'Record_ProjectManager'. Поскольку все свойства в зависимой роли не имеют значения NULL, множественность главной роли должна быть «1».

Убедитесь, что FK обнуляемым

public virtual int? ProjectManagerId { get; set; } 
+1

Почему бы это сделать разницу? Возможно, нет даже «ProjectManagerId», OP может выбрать независимые ассоциации (хотя и не рекомендуется). –

+0

@ GertArnold Мое предположение заключалось в том, что OP использовал FK, но просто не указал отношения. – James

+0

Возможно, также, что свойство просто не объявлено как «виртуальное» в его случае (не знаю, потому что он не показал нам его код). – BrainSlugs83

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