У меня проблема с получением linq, чтобы объекты работали хорошо. У моего запроса (не моего, поддерживающего чей-то код :-)) есть несколько включений, которые, как я определил, необходимы для экрана WPF, который использует результаты этого запроса.
Теперь сгенерированный SQL выполняется очень быстро и возвращает только одну строку данных. Но он возвращает 570 столбцов, и я думаю, что снижение производительности связано с созданием всех объектов и всех этих полей.
Я пытался использовать отложенную загрузку, но это, похоже, не влияет на производительность.
Я попытался удалить все ненужные операторы «include», но, похоже, все они необходимы.
вот запрос linq:
var myQuery =
from appt in ctx.Appointments
.Include("ScheduleColumnProfile")
.Include("EncounterReason")
.Include("Visit")
.Include("Visit.Patient")
.Include("Visit.Patient.PatientInsurances")
.Include("Visit.Patient.PatientInsurances.InsuranceType")
.Include("Visit.Patient.PatientInsurances.InsuranceCarrier")
.Include("MasterLookup")
.Include("User1")
.Include("User2")
.Include("Site")
.Include("Visit.Patient_CoPay")
.Include("Visit.Patient_CoPay.User")
.Include("Visit.VisitInstructions.InstructionSheet")
where appt.VisitId == visitId
&& appt.MasterLookup.LookupDescription.ToUpper() != Rescheduled
&& appt.Site.PracticeID == practiceId
&& appt.MasterLookup.LookupDescription.ToUpper() != Cancelled
orderby appt.AppointmentId descending
select appt;
Сгенерированный SQL имеет длину 4000 строк с 570 столбцами в выбранной статистике и 3 или 4 Union ALLs, поэтому я не собираюсь вставлять его сюда, если кто-то ДЕЙСТВИТЕЛЬНО не хочет его видеть. По сути, я ищу способ избавиться от профсоюзов, если это возможно, и обрезать столбцы только до того, что нужно.
Помощь!
: -)