Reputation: 263
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:
I am using Entity Framework Core 1.0.0. Any help would be sincerely appreciated.
Upvotes: 24
Views: 39168
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