【发布时间】:2013-07-12 04:10:28
【问题描述】:
我对@987654321@提出的问题有一个后续问题
这是我所有的 Linq 查询
这是查询 1:
var RCode = from a in DbEntity.MobileAssetDowntimeReasonCodes
where a.MobileAssetCategoryId.Equals(reasonCode)
select new
{
a.JdeReasonCode
};
ReasonCode.DataSource = RCode.ToList();
ReasonCode.DataBind();
这带来了在 DataGrid 中显示的结果代码。
这里是查询 2,它也有效
var RJDEReasonCode = from a in JDETable.F0005
where
a.DRSY.Equals("00") &&
a.DRDL01 != null &&
(a.DRRT.Equals("W4") ||
a.DRRT.Equals("W5")) &&
a.DRKY.Trim() == "801"
select new
{
CATEGORY_CODE = a.DRRT,
REASON_CODE = a.DRKY,
DESCRIPTION = a.DRDL01
};
但我不想硬编码“801”,而是想将查询 1 的结果传递给查询 2,并在我的数据网格中显示查询 2 结果。我该怎么做?
【问题讨论】:
-
查询#1 是否返回
801?试试a.DRKY.Trim() == RCode.FirstorDefault().JdeReasonCode -
查询一个返回一个代码列表,例如 801 、 802,803 我想在第二个查询中运行每个代码以获取该代码的详细信息并显示它
-
您可以在循环中执行此操作,并将每次迭代的结果连接到单个集合。或者您可以将您的 LINQ 语句修改为类似于:
RCode.Contains(a.DRKY.Trim()) -
阅读this answer。