[英]Strange value in LINQ query result
在我的報告頁面上的應用程序中,我有多個過濾器(開始日期、結束日期、付款類型等),我想根據用戶選擇生成一個查詢,如下所示:
private void btnSearch_Click(object sender, RoutedEventArgs e)
{
if (cboPaymentType.SelectedItem != null)
_selectedPaymentId = ((PaymentType)cboPaymentType.SelectedItem).id;
_dateFrom = dpInvoiceFrom.SelectedDate;
_dateTo = dpInvoiceTo.SelectedDate;
IQueryable<invoice> invoicesQuery = _context.invoices;
if (_selectedPaymentId != 0)
invoicesQuery = invoicesQuery.Where(s => s.payment_id == _selectedPaymentId);
if (_dateFrom != null)
invoicesQuery = invoicesQuery.Where(s => s.invoice_date >= _dateFrom);
if (_dateTo != null)
invoicesQuery = invoicesQuery.Where(s => s.invoice_date <= _dateTo);
ocInvoices = new ObservableCollection<invoice>(invoicesQuery);
}
結果總是什么都沒有!!,當我檢查查詢結果時,我在 WHERE 子句中發現了奇怪的值@p__linq__0
:
WHERE ([Extent1].[invoice_date] >= @p__linq__0)
我的錯誤是什么?
即使它不應該有所作為,您可能希望在傳遞給構造函數之前先實現查詢。
ocInvoices = new ObservableCollection<invoice>(invoicesQuery.AsEnumerable());
或者
ocInvoices = new ObservableCollection<invoice>(invoicesQuery.ToList());
根據一個奇怪的值@p__linq__0
。 它是查詢參數,它是生成的 SQL 查詢的一部分。
DECLARE @p__linq__0 datetime = {value from local variable};
SELECT
...
FROM ...
WHERE ([Extent1].[invoice_date] >= @p__linq__0)
一般來說,問題可能是您沒有滿足條件的行,因此您得到空結果。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.