如何在变量中存储Linq表达式并在查询中使用这些变量?

时间:2013-11-09 05:36:08

标签: c# .net linq linq-expressions

我有一个这样的表达式:

List<BAL.Receipt> ac = BAL.ApplicationInfo.db.Receipts.Where
                (x => x.InvoiceNo.StartsWith(txtSearch.Text)
                 | x.Alias.StartsWith(txtSearch.Text)

我想要做的是将此表达式拆分为多个部分并将它们存储在变量

喜欢

var a = x => x.InvoiceNo.StartsWith(txtSearch.Text);
var b = x => x.Alias.StartsWIth (txtSearch.Text) ; 

查询时

List<BAL.Receipt> ac = BAL.ApplicationInfo.db.Receipts.Where( a & b) ; 

有可能实现这个目标吗?

如果可能的话,请给我举个例子。

1 个答案:

答案 0 :(得分:4)

你应该能够这样做:

Expression<Func<BAL.Receipt, bool>> a =
    x => x.InvoiceNo.StartsWith(txtSearch.Text);

Expression<Func<BAL.Receipt, bool>> b =
    x => x.Alias.StartsWIth(txtSearch.Text);

List<BAL.Receipt> ac =
    BAL.ApplicationInfo.db.Receipts
        .Where(a)
        .Where(b);