我正在尝试使用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
当简单地使用ProjectCreator时,我可以得到iqueryable(项目):
Return (From p In db.Projects _
Where p.ProjectCreator = Me.UserId)
但是在使用外键时,我无法获取语法来获取iqueryable(项目)。下面给了我一个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)
答案 0 :(得分:0)
只需选择项目:
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 _
Select p)