我有一个具有以下结构的Article实体

public class Article
{
    public decimal Price {get;set;}
    public decimal? SalePrice {get;set;}
    public bool OnSale {get;set;}
}


我需要做的是按照以下条件按商品价格查询商品:
如果商品正在销售,则以其销售价格为准,否则,以正常价格为准。

举个例子:


文章A(OnSale = True,价格= 10,SalePrice = 5)
B条(ONSale = False,Price = 4,SalePrice = NULL)
C条(OnSale = False,Price = 22,SalePrice = 10)


按价格订购时,订购应为

B(价格4)

A(价格5)-表示其销售价格

C(价格22)

我尝试过

IQueryable<Article> articlesQuery = dal.Where<Article>(m => m.Active);
articlesQuery = articlesQuery.OrderBy(m => m.OnSale ? m.PriceSale : m.PriceSale);


但它并不能达到预期的效果。

任何帮助表示赞赏。

最佳答案

如果双方都是相同的变量? (而不是上述类中的变量)。
不应该是:

articlesQuery = articlesQuery.OrderBy(m => m.OnSale ? m.SalePrice: m.Price);

10-08 00:07