2016-07-19 2 views
0

私の参加に2つの条件を追加しようとしましたが、できません。私は||演算子を使用します。あなたが実装したいORであれば参加する場所を使用する必要がlinq経由でjoin文に2つの条件を使用するには?

from pay in db.Payments 
join FlyRpt in db.FlightReportTickets 
on pay.ObjectIdDepartue equals FlyRpt.DepartureId || 
    FlyRpt.DepartureId equals pay.ObjectIdReturn 

join prof in db.Profiles on FlyRpt.UserId equals prof.UserId 
where pay.ReserveType == 1 && 
    pay.Transactionsuccess && 
    pay.IssueDate >= fromDateTime && 
    pay.IssueDate <= toDateTime 

select new 
{ 
    FlyRpt.FullPrice 
}; 
+0

エラーメッセージは何ですか? – Default

+0

演算子を適用できません。 System.Nullable型のオペランドにおよびSystem.Nullable programmer138200

答えて

2

from pay in db.Payments 
from FlyRpt in db.FlightReportTickets 
where pay.ObjectIdDepartue == FlyRpt.DepartureId 
|| FlyRpt.DepartureId == pay.ObjectIdReturn 
join prof in db.Profiles on FlyRpt.UserId equals prof.UserId 
where pay.ReserveType == 1 && 
pay.Transactionsuccess && 
pay.IssueDate >= fromDateTime && 
pay.IssueDate <= toDateTime 
select new 
{ 
    FlyRpt.FullPrice, 
}; 
+0

または操作...... – programmer138200

1

あなたが他にORを使用することはできませんので、あなたは、クロス結合を使用することができますが加わり:

from pay in db.Payments 
from FlyRpt in db.FlightReportTickets 
where 
    pay.ObjectIdDepartue = FlyRpt.DepartureId || 
    FlyRpt.DepartureId equals pay.ObjectIdReturn 
join prof in db.Profiles 
on FlyRpt.UserId equals prof.UserId 
where 
    pay.ReserveType == 1 && 
    pay.Transactionsuccess && 
    pay.IssueDate >= fromDateTime && 
    pay.IssueDate <= toDateTime 
select new 
{ 
    FlyRpt.FullPrice, 
}; 
関連する問題