2016-10-27 6 views
1

У меня возникли проблемы с получением списка объектов, где значение внешнего ключа может быть нулевым.Entity Framework Core с нулевым внешним ключом

Модель:

public class Company 
{ 
    [Key] 
    [Required] 
    public int Id { get; set; } 
    [Display(Name = "Company Name")] 
    public string CompanyName { get; set; } 
    [Display(Name = "Main Phone")] 
    public string LandPhone { get; set; } 
    [Display(Name = "Fax")] 
    public string FaxPhone { get; set; } 
} 

public class Contact 
{ 
    [Key] 
    [Required] 
    public int Id { get; set; } 
    [Display(Name ="First Name")] 
    public string FirstName { get; set; } 
    [Display(Name = "Last Name")] 
    public string LastName { get; set; } 
    [EmailAddress] 
    public string Email { get; set; } 
    [Display(Name = "Mobile Phone")] 
    public string MobilePhone { get; set; } 
    [Display(Name = "Office Phone")] 
    public string LandPhone { get; set; } 
    [Display(Name = "Fax")] 
    public string FaxPhone { get; set; } 
    public string Title { get; set; } 
    public int CompanyId { get; set; } 
    [ForeignKey("CompanyId")] 
    public Company Company { get; set; } 
} 

Когда я пытаюсь получить список всех Contacts и один из них имеет нулевое значение для CompanyId в моей базе данных, он будет пропускать, что Contact в списке возвращает , Например, запрос возвращает только var contacts = _context.Contacts.Include(c => c.Company).ToList(); Джош Стоун из следующей таблицы:

Contacts Table

Я использую Entity Framework Ядро 1.0.0. Любая помощь была бы искренне оценена.

ответ

5

Предположим, что он действительно вернул Мэри, что бы вы ожидали от ее CompanyId? Я подозреваю, что нуль (что еще это может быть?), В этом случае ваша модель является неправильной и public int CompanyId { get; set; } должен быть public int? CompanyId { get; set; }