使用Linq搜索数据库

时间:2015-05-14 06:52:21

标签: c# linq

我正在尝试使用下面的代码示例搜索查找datagrid中的数据。我已经让它与代码看起来有点不同,但我现在将在我的编码中使用 async ,我尝试使用下面的示例,但不知道如何更改代码工作正常。

    private async Task btnSearchSysproStock_Click(object sender, RoutedEventArgs e)
    {
        using (DataEntities DE = new DataEntities())
        {
            List<SSData> stockSearch = await (from a in DE.tblSysproStocks where 
                (a => txtSearchSysproStock.Text == string.Empty || a.StockCode.Contains(txtSearchSysproStock.Text)) //The error is in this line
                select new SSData
                {
                    SID = a.StockID,
                    SCode = a.StockCode,
                    SDescription = a.StockDescription,
                    SConvFactAltUom = (float)a.ConvFactAltUom,
                    ...
                }).ToListAsync();
            dgSysproStock.ItemsSource = stockSearch;
        }
    }

我收到以下错误:

  

无法将lamba表达式转换为&#39; bool&#39;因为它不是委托类型

任何人都可以帮助我获取我正在使用的代码。提前致谢! :)

1 个答案:

答案 0 :(得分:3)

LINQ where子句需要bool表达式,你不需要lambda:

from a in ...
where txtSearchSysproStock.Text == string.Empty || 
      a.StockCode.Contains(txtSearchSysproStock.Text)
select ...