Entity Framework 4.1 DbContext Расширение частичных классов - PullRequest
0 голосов
/ 27 января 2012

Создание приложения на C # с использованием EF 4.1 с базой данных в первую очередь. Мой вопрос касается использования методов расширения для возврата значений через объект DbContext.

Мои сущности были созданы как частичные классы генератором DbContext. У меня есть таблица Projects и связанная таблица Managers , и через объект контекста я могу выполнять запросы LINQ и получать доступ к проектам и назначенному менеджеру проектов. Если таблица Manager имеет поля имени и фамилии, как бы я написал свое расширение как свойство или метод для объединения полей имени и фамилии, чтобы при запросе проекта и использовании отношения менеджера свойство FullName возвращает объединенное значение?

В этом примере есть переменная _ projects , заполненная списком проектов, созданных с помощью запроса LINQ:

Fields["manager"].Value = _projects[i].Project.ProjectManager.FullName

Я могу создать свойство FullName в методе и передать идентификатор менеджера, но не станет ли это дополнительным запросом? Спасибо за помощь.

1 Ответ

1 голос
/ 27 января 2012

Если вы знаете, что у вас всегда будет доступ к свойству навигации ProjectManager, вы можете включить его в начальный запрос, используя метод Include

var projects = (from p in ctx.Projects
                select p)
                   .Include(p => p.ProjectManager)
                   .ToList();

Затем вы можете добавитьследующее свойство для вашего Manager класса (в отдельном файле, чем сгенерированный)

public string FullName
{
    get { return FirstName + " " + LastName; }
}

и доступ к нему с помощью

var manager = projects[0].ProjectManager.FullName;

Если я неправильно истолковал ваш вопрос, не могли бы вы предоставитьпример того, как будет выглядеть ваш код с использованием предложенного вами метода расширения?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...