【发布时间】:2019-11-27 18:06:25
【问题描述】:
我对现代风格的 .NET 开发和实体框架还是很陌生。我正在尝试获取其中一个值落在其他值列表中的对象列表,并且我正在尝试使用 LINQ 查询方法来执行此操作。
string cb_orderstatus = Request.Query["OrderStatusSearch"].ToString();
if (!string.IsNullOrEmpty(cb_orderstatus))
{
string[] orderStatuses = cb_orderstatus.Split(",");
query = query.Where(o => orderStatuses.Contains(o.Status.ToString()));
}
如果 cb_orderstatus 的值是一个包含 5、10 和 15 的字符串数组,我希望查询返回其 Status 等于其中任何值的对象。目前它不工作。有人可以帮忙吗?
【问题讨论】:
-
o.Status是什么类型? -
什么是
query? -
另外,不工作是什么意思?会抛出异常吗,什么样的异常或者返回什么样的结果?
-
您的代码在逻辑上似乎是正确的。我有根据的猜测是
o.Status.ToString()的结果不是您所期望的,或者如果是,则字符串比较存在问题。 -
如果
Request.Query["OrderStatusSearch"]是一个数组,那么ToString的结果将不会是一个逗号分隔的值列表。它将是数组的类型,例如"System.Int32[]"用于int[]
标签: c# asp.net entity-framework linq