Предположим, у нас есть 2 типа, сопоставленные с базой данных через EF 4.
Schedule 1.....1 Visit
Кроме того, у нас есть третий пользовательский тип представления
public class ScheduleView
{
public Schedule Schedule { get; set; }
public Visit Visit { get; set; }
}
Таким образом, мы можем написать запрос на соединение
var query = Context.Schedule.Join(Context.Visit
,/*Schedule join key definition*/,/*Visit join key definition*/,
(scheduleView, visit) => new ScheduleView {Schedule = scheduleView, Visit = visit})
Проблема в том, что мне нужно загрузить также Patient
свойство типа Visit
.Но когда я пишу
query = (query as ObjectQuery<ScheduleView>).Include("Visit.Patient");
, я получаю ошибку времени выполнения
Невозможно привести тип 'System.Linq.IQueryable 1' to type
'System.Data.Objects.ObjectQuery
1'.LINQ to Entities поддерживает только приведение типов примитивов Entity Data Model.
Итак, вопрос - как заставить запрос включить что-то в мой пользовательский тип?