2010-05-04 53 views
0

我试图使用LINQ到SQL返回一个IQueryable使用外键关系时,使用下面的架构(的项目),我希望能够通过在用户ID并获得该公司的用户关联创建的所有项目LINQ to SQL中使用外键返回的IQueryable(myEntity所的]

数据库表:

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,但我似乎无法说服它给我一个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

只需选择项目:

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) 
+0

哈哈哈!我是一个关节!我在()外面试过,它向我咆哮。谢谢,约翰! – GernBlandston 2010-05-04 20:15:49