2011-08-15 170 views
0

我有一個查詢,返回真或假,這取決於在查詢設定的標準:LINQ到SQL查詢

bool eventVoucherUsed = getAllBookings.Any(r => r.EventID == booking.EventID && r.Voucher != null) ? true : false; 

我想增加一個檢查修改上面的查詢:

booking.VoucherStatus == True 

但我不能用And運營商的三倍。有沒有其他的選擇來實現這一目標?

+2

你爲什麼不能使用&& 3次?另外,你的? true:false是無意義的,任何已經返回true或false – Wolfwyrd

+0

'EventID'是一個布爾值嗎? –

+0

爲什麼不能使用&&運算符三次?你可以做「.Where()。Where()。Where()。Any()」,但是這兩個&&會更好。 – Narnian

回答

1

我不知道你所說的「不能使用與運營商的三倍」的意思。所有你需要做的就是將條件添加到謂詞中。

bool eventVoucherUsed = 
    getAllBookings.Any(r => r.EventID == booking.EventID 
        && r.Voucher != null 
        && booking.VoucherStatus == true); 
1

那麼,如果你的例子是準確的預訂是你已經知道,所以我看不出有任何理由也不能只檢查,即使進入數據庫之前的東西:

bool eventVoucherUsed = 
    booking.VoucherStatus 
    ? getAllBookings.Any(r => r.EventID == booking.EventID && r.Voucher != null) 
    : false;