我有一个Article
实体,其结构如下
public class Article
{
public decimal Price {get;set;}
public decimal? SalePrice {get;set;}
public bool OnSale {get;set;}
}
我需要做的是按照以下标准按价格查询文章: 如果文章正在销售中,请按照销售价格,如果没有,请按正常价格购买。
举个例子:
按价格订购时,订单应为
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);
但它没有给出理想的结果。
感谢任何帮助。
答案 0 :(得分:9)
if的两边是同一个变量吗? (而不是上述类中的变量) 不应该是:
{{#regex:lorem (ipsum, dolor).jpg, lorem (ipsum) (dolor).JPG, lorem.png|/(png{{!}}bmp{{!}}jp?g),/i| $1 \$ }}
答案 1 :(得分:0)
您可以使用Article
上的其他只读属性执行此操作,以使代码更易于阅读:
public class Article
{
public decimal NormalPrice { get; set; }
public decimal? SalePrice { get; set; }
public bool OnSale { get; set; }
public decimal Price
{
get
{
if (this.OnSale)
{
return this.SalePrice.Value;
}
else
{
return this.NormalPrice;
}
}
}
}
并使用它:
IQueryable<Article> articlesQuery = dal.Where<Article>(m => m.Active);
articlesQuery = articlesQuery.OrderBy(m => m.Price);