Entity Framework - запрос наследования - PullRequest
3 голосов
/ 01 декабря 2010

Мне поручили задание на домашнее задание, чтобы сделать трекер задач.Я хотел изучить структуру сущностей для этого назначения, особенно как использовать аспекты наследования.Проекты, задачи и подзадачи имеют много схожих свойств, поэтому я подумал, что буду использовать наследование, но не могу понять, как запрашивать конкретные проекты.1003 *

Entity Diagram

Затем я создал базу данных из этой модели.Как я могу получить проекты сотрудников?

Я начал с этого:

ModelContainer m = new ModelContainer();
var employee = (from e in m.Employees 
               where e.UserName == username
               select e).First<Employee>();

Но ((Employee)employee).Projects недоступен, но ((Employee)employee).Items есть.((Employee)employee).Items.Projects также недоступно.Как мне получить проекты Сотрудника?Должен ли я добавить Свойство навигации к Сотрудникам для этого?

1 Ответ

4 голосов
/ 01 декабря 2010

Вам потребуется использовать метод расширения Queryable.OfType (TResult) , чтобы отфильтровать объекты типа Manager:

using (var model = new ModelContainer())
{
    Manager manager = (from m in model.Employees.OfType<Manager>()
                       where m.UserName == username
                       select m).FirstOrDefault();
}

Связанные ресурсы:

...