LINQ新手在这里,对我很轻松。
我在下面的查询中添加了另一个表:(在objGlobalDataContext.ActivityStatuses中加入c2在c2.Activity_Status_ID等于c.Status_ID)
我想返回一个状态字段(c2.status_name),但由于引用有空(c.Status_ID),我没有得到任何结果。
有人可以帮忙吗?简单点!
提前致谢..
Dim objAdminActivity = (From c In objGlobalDataContext.Activities
Join c1 In objGlobalDataContext.ActivityTypes On c1.Activity_Type_ID Equals c.Activity_Type_ID
Join c2 In objGlobalDataContext.ActivityStatuses On c2.Activity_Status_ID Equals c.Status_ID
Order By c.Activity_Name.Trim()
Where c.Is_Reserved_Activity = False
Select c.Activity_Auto_ID, c.Activity_Name, c1.Activity_Type_Description,
c.Active, c.Activity_Number, c.Effective_From_Date, c.Effective_To_Date,
c2.Status_Name, c.Automatically_Created, c.Costed_Activity).ToArray()
答案 0 :(得分:0)
如果您希望在没有匹配的Status_Name
或Status_ID
为null时获得空Status_ID
,则可以使用左连接:
Dim objAdminActivity = (From c In objGlobalDataContext.Activities
Join c1 In objGlobalDataContext.ActivityTypes On c1.Activity_Type_ID Equals c.Activity_Type_ID
Group Join c2 In objGlobalDataContext.ActivityStatuses On c2.Activity_Status_ID Equals c.Status_ID Into Group
From c2 in Group.DefaultIfEmpty()
Order By c.Activity_Name.Trim()
Where c.Is_Reserved_Activity = False
Select c.Activity_Auto_ID, c.Activity_Name, c1.Activity_Type_Description,
c.Active, c.Activity_Number, c.Effective_From_Date, c.Effective_To_Date,
c2.Status_Name, c.Automatically_Created, c.Costed_Activity).ToArray()