我是LINQ的新手,所以提前道歉

我有以下Linq查询:-

var OrdersByBranches =
    from a in AllOrders
    join b in AllBranchKeys
        on a.BranchKey equals b.BranchKey
    orderby a.Date
    group a by new { a.Date, a.paymentMethod } into BranchOrderGrouped
    select new
    {
        BranchOrderGrouped.Key.Date,
        CurrencyAmount = BranchOrderGrouped.Sum(a =>
        a.CurrencyAmount),
        BranchOrderGrouped.Key.paymentMethod
    };


我需要在上面的查询中包括一个where子句...仅当一个名为
BranchKeySelected为“”

我尝试使用If Else语句,并使用与上述相同的重复查询
一个包含where子句和一个NOT的对象。 ...但是当我这样做..然后OrdersByBranches
在IF语句之外不可用

感谢您的帮助

问候

最佳答案

var OrdersByBranches =
    from a in AllOrders
    join b in AllBranchKeys on a.BranchKey equals b.BranchKey
    orderby a.Date
    group a by new { a.Date, a.paymentMethod } into BranchOrderGrouped
    select new {
        BranchOrderGrouped.Key.Date,
        CurrencyAmount = BranchOrderGrouped.Sum(a =>  a.CurrencyAmount),
        BranchOrderGrouped.Key.paymentMethod
    };

if(string.IsNullOrEmpty(BranchKeySelected ))
{
    OrdersByBranches = OrdersByBranches.Where(/*blbabla*/);
}

return OrdersByBranches;

关于c# - 具有条件WHERE子句的Linq查询,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2850024/

10-11 22:38