【问题标题】:How to do C# Linq Join Equals Where如何做 C# Linq Join Equals Where
【发布时间】:2016-07-19 15:32:49
【问题描述】:

我可以这样查询吗?

var result = from us20 in Us20Repository.GetAll()
             join pj01 in Pj01Repository.GetAll() on new
             {
                User =
                    (us20.company == "kodofisi" ?
                        us20.personalId :
                        (
                            us20.company == "coca-cola" ?
                            (
                                (from pj02 in Pj02Repository.GetAll()
                                where
                                    pj02.id == us20.id &&
                                    pj02.personalId == us20.personalId
                                select new
                                {
                                    pj02.id
                                }).First().ToString()
                            ) :
                            ""
                        )
                    ),
                ACTIVE = "X"
             } equals new { User = pj01.name, ACTIVE = pj01.active }
             select new
             {
                 Name = pj01.id
             };

这在 join 中不起作用,如何使用 select 来完成?数据不来。

相应的查询是否有效:

/*bla bla*/ FROM us20 US20 内连接 pj01 PJ01 ON PJ01.PJID = ( 案例(US20.company = “kodofisi”) 然后 US20.personalId 什么时候 (US20.BKNM = “可口可乐”) 然后 ( 从 pj02 中选择 dataId,其中 id = US20.id AND personalId = US20.personalId ) 结尾 ) AND PJ01.active = "X"

【问题讨论】:

    标签: c# linq join left-join


    【解决方案1】:

    我不知道这是否是导致问题的原因,但也许您可以尝试在 sn-p 上使用 FirstOrDefault() 而不是 First():

    (from pj02 in Pj02Repository.GetAll()
                                where
                                    pj02.id == us20.id &&
                                    pj02.personalId == us20.personalId
                                select new
                                {
                                    pj02.id
                                }).First().ToString()
    

    这种改变解决了我遇到的类似问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多