Я пытаюсь использовать Linq to SQL для возврата IQueryable (из Project) при использовании отношений внешнего ключа. Используя приведенную ниже схему, я хочу иметь возможность передать UserId и получить все проекты, созданные для компании, с которой связан пользователь.
Таблицы БД:
Projects
Projid
ProjCreator FK (UserId from UserInfo table)
Companyid FK (CompanyID from Companies table)
UserInfo
UserID PK
Companyid FK
Companies
CompanyId PK
Description
Я могу получить iqueryable (проекта), просто получив ProjectCreator с этим:
Return (From p In db.Projects _
Where p.ProjectCreator = Me.UserId)
Но у меня возникают проблемы с получением синтаксиса для получения запрашиваемых (проектов) при использовании внешних ключей. Ниже приведен IQueryable (анонимный), но я не могу убедить его в том, что он дает IQueryable (проекта), даже если я пытаюсь его разыграть:
Dim retval = (From p In db.Projects _
Join c In db.Companies On p.CompanyId Equals c.CompanyId _
Join u In db.UserInfos On u.CompanyId Equals c.CompanyId _
Where u.Login = UserId)