Christopher Drzal
Christopher Drzal

Reputation: 263

Entity Framework Core nullable foreign key

I am having trouble getting a list of entities where a foreign key value could be null.

The Models:

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; }
}

When I try and get the list of all Contacts and one of them has a null value for CompanyId in my database, it will skip that Contact in the list it returns. For example, the query var contacts = _context.Contacts.Include(c => c.Company).ToList(); only returns Josh Stone from the following table:

Contacts Table

I am using Entity Framework Core 1.0.0. Any help would be sincerely appreciated.

Upvotes: 24

Views: 39168

Answers (1)

Robert McKee
Robert McKee

Reputation: 21487

Supposing that it did actually return mary, what would you expect her CompanyId to be? I would suspect null (what else could it be?), in which case your model is wrong and public int CompanyId { get; set; } should be public int? CompanyId { get; set; }

Upvotes: 35

Related Questions