0

如何在 Linq 中编写以下内容?

select * from CompetitionDealer d

left outer join CompetitionResult r 
on d.ID = r.fk_CompetitionDealer and     (r.fk_CompetitionParameter is null 
or r.fk_CompetitionParameter = ID1)

where fk_Competition = ID2

问题是连接上有一个“AND”。如果我将它移到 where 结果完全不同,所以我不能这样做。

4

2 回答 2

1

也许是这样的:

var ls= (
        from d in db.CompetitionDealer
        from r in db.CompetitionResult
            .Where(a => a.fk_CompetitionDealer == d.ID 
                       && (a.fk_CompetitionParameter == null 
                       || a.fk_CompetitionParameter == ID1)).DefaultIfEmpty()
        where d.fk_Competition == ID2
        select d
    );

dblinq 数据上下文在哪里

于 2013-04-23T07:59:14.687 回答
0

我通过将其分为两个问题来解决它:

首先,我选择了以下列表:

select * from CompetitionResult r where r.fk_CompetitionParameter = ID1)

然后我越过加入上面的列表。

于 2013-04-23T08:35:32.870 回答