首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >左外连接

左外连接
EN

Stack Overflow用户
提问于 2011-06-08 15:22:16
回答 1查看 115关注 0票数 0
代码语言:javascript
复制
List<ServicePacksDTO> allServicePacks = new List<ServicePacksDTO>();
        using (var db = new DataContext())
        {
            allServicePacks=(
                    from sp in db.ServicePacks
                    join st in db.States.DefaultIfEmpty() on sp.State_id equals st.State_Id
                    join type in db.ServiceTypes on sp.ServiceType_Id equals type.ServiceType_Id
                    where
                     (type.ServiceType_desc.ToLower() == "accepted") 
                    orderby sp.AustState_id
                    select sp.ToServicePacksDTO(db)).ToList();
        }

当前代码运行良好,直到我尝试在state上执行外部联接。有没有很容易做到这一点的方法?

EN

回答 1

Stack Overflow用户

发布于 2011-06-08 16:48:05

好的,首先,你需要提供更多的细节,“在我尝试做xx之前,一切都很好”。

什么不起作用?有错误吗?意外的结果?

忘记了DTO投影和db.ServiceTypes连接,要在db.ServicePacksdb.States之间做一个LOJ,请执行以下操作:

代码语言:javascript
复制
var x = (from sp in db.ServicePacks
join st in db.States on sp.State_id equals st.State_id into spst
from x in spst.DefaultIfEmpty()
select new { /* fields */ }
).ToList();

首先尝试一下,确保它可以工作(应该可以),然后添加到其他连接和投影上。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6275440

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档