Наша система получает входные данные от двух внешних источников (телефонный звонок/веб-представление).Entity Framework - загрузка объектов подкласса с установкой TPT
// Table-Per-Type Hierarchy
public class Submission
{
public int SubmissionId { get; set; } // Primary Key
public int? PersonId { get; set; }
public int? CompanyId { get; set; }
public long? EmployeeId { get; set; }
public bool? Completed { get; set; }
public string AbsenceReason { get; set; }
public string AbsenceType { get; set; }
public DateTime? AbsenceDate { get; set; }
}
public class CallSubmission : Submission
{
public string CallerId { get; set; }
public string PhoneNumber { get; set; }
public DateTime? HangUp { get; set; }
public DateTime? PickUp { get; set; }
}
public class WebSubmission : Submission
{
public string EmailAddress { get; set; }
public string PhoneNumber { get; set; }
public DateTime SubmissionDate { get; set; }
}
Моя цель состоит в том, чтобы получить все материалы в течение последних семи дней с использованием Pickup/SubmissionDate в зависимости от типа представления мы имеем дело с. Можно ли добиться этого с помощью одного оператора LINQ? В идеале я бы хотел избежать загрузки двух разных наборов данных в памяти.
Заявления Я надеюсь, интегрировать
Users.Where(user => user.UserName == name)
.SelectMany(user => user.Submissions)
.OfType<CallSubmission)()
.Where(call => call.PickUp >= startDate)
Users.Where(user => user.UserName == name)
.SelectMany(user => user.Submissions)
.OfType<WebSubmission>()
.Where(web => web.SubmissionDate >= startDate)
В чем проблема с запросом 'UNION'? –
Я не должен был использовать СОЮЗ; Я имел в виду загрузку двух наборов данных и памяти, а затем их объединение. Я был бы открыт для использования оператора SQL UNION, если это возможно в этом случае с LINQ. –