我想写一个linq查询,它返回一个打开订单列表,然后:
List<Order> GetOpenOrder(string shopId, string codeCustomer)
返回处于打开状态的订单列表:由同一客户的商店打开。
我通过属性OrderCustomer
找到了字段CodeCustomer,shopId
到Order
的字段。
要检索订单的最新状态,请参阅代理类PxOrder中的属性LastStatus。
要检索状态打开的ID,请参阅PxStatus.OpenStatusId
。
代理类LastStatus
中的属性PXOrder
如下:
[Display(ResourceType = typeof(Annotation), Name = "Order_Status")]
public string LastStatus
{
get
{
if (string.IsNullOrEmpty(_lastStatus))
{
OrderStatus status = OrderStatus.OrderByDescending(x => x.StatusDate).FirstOrDefault();
if (status != null)
{
string iso639 = CultureInfo.CurrentCulture.TwoLetterISOLanguageName;
TextLanguage statusLanguage = status.Status.Text.TextLanguage.FirstOrDefault(x => x.Language.Iso639.ToLower() == iso639.ToLower());
_lastStatus = statusLanguage != null ? statusLanguage.TextLanguageValue : string.Empty;
}
else
_lastStatus = string.Empty;
}
return CultureInfo.CurrentCulture.TextInfo.ToTitleCase(_lastStatus.ToLower());
}
}
在方法GetOpenOrder
中,我编写了以下查询:
long openStatusId = new Status().OpenStatusId;
var list = Filter(x => x.ShopId == shopId && x.OrderCustomer.Any(y => x.OrderCustomer.Any== codeCustomer) && x.LastStatus == ......;
return list.ToList();
我的问题是LastStatus的最后一个条件,即如何过滤打开状态。 谢谢你的任何提示。