2012-04-05 4 views
4

У меня есть две таблицы в моей базе данных, одна для участников проектов и одна для проектов После аутентификации пользователя у меня есть его ID. В моей таблице участников проекта у меня есть идентификатор проекта и идентификатор пользователя. я могу получить список участников проекта для этого пользователя с помощьюКак запросить список в LINQ

var pm = db.ProjectMembers.Where(c=> c.UserID=u.UserID) ; 

Теперь мой вопрос, как я могу получить список ProjectID из приведенного выше списка. И затем, как я могу получить список проектов из таблицы Project, используя список ProjectID.

ответ

2

Первая часть вашего вопроса:

var projectIDs = db.ProjectMembers.Where(c=> c.UserID=u.UserID).select(pm=>pm.ProjectID) ; 

вторая часть:

если вы используете Entity Framework, вы должны увидеть свойство (проект) для каждого субъекта ваших ProjectMembers список, вы можете просто проигнорировать мою первую часть этого ответа и перейти непосредственно к этому

var projectsList = db.ProjectMembers.Where(c=> c.UserID=u.UserID).select(pm=>pm.Project) ; 

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

примечание: что если восстановленные проекты были пустыми, то ваша инфраструктура Entity работает с Wager Eager loading (Google it). поэтому, чтобы инфраструктура Entity генерировала правильный синтаксис SQL для извлечения данных о проектах, добавьте Include() в ваш запрос следующим образом:

var projectsList = db.ProjectMembers.Where(c=> c.UserID=u.UserID).Include("Projects").select(pm=>pm.Project) ; 
Смежные вопросы