Я создал MVC, используя Entity Framework, и я столкнулся с ситуацией, которую я не знаю, как решить.
Я использую автоматические объединения и связи EF (все мои модели таблиц были созданы EF автоматически).
Теперь проблема: у меня есть таблица клиентов, в которой есть два (соответствующие) поля - personID
и employerID
.Только один из них содержит данные, другой будет нулевым (клиент - либо человек, либо работодатель).Когда я пытаюсь включить модель employer
в набор результатов, меня выдают (без какого-либо сообщения, когда я отлаживаю, я вижу, что в контенте есть данные, но иногда сотрудник имеет значение NULL), я также не уверен, какдизайн должен выглядеть так.Это мой код:
Заказчик:
public partial class Customer
{
public Customer()
{
Account = new HashSet<Account>();
}
public long Id { get; set; }
public int? PersonId { get; set; }
public int Type { get; set; }
public int? EmployerId { get; set; }
public Employer Employer { get; set; }
public ICollection<Account> Account { get; set; }
}
Работодатель:
public partial class Employer
{
public Employer()
{
Customer = new HashSet<Customer>();
}
public int Id { get; set; }
public string Name { get; set; }
public int? IdType { get; set; }
public ICollection<Customer> Customer { get; set; }
}
Персона:
public partial class Person
{
public int Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public int Sex { get; set; }
public DateTime? BirthDate { get; set; }
public int IdType { get; set; }
}
Теперь, когда я бегув моем репозитории:
var collectionBeforePaging = _context.Customer
Все работает, но работодатель равен NULL.Если я использую:
var collectionBeforePaging = _context.Customer.Include(a => a.Employer)
Тогда проект завершится неудачей.
Как я могу сделать это присоединения?