[英]Linq to SQL query SubQuery
I have a follow up question on the question I asked here 关于我在这里提出的问题,我有一个跟进问题
here are all of my Linq query 这是我的所有Linq查询
This is query 1: 这是查询1:
var RCode = from a in DbEntity.MobileAssetDowntimeReasonCodes
where a.MobileAssetCategoryId.Equals(reasonCode)
select new
{
a.JdeReasonCode
};
ReasonCode.DataSource = RCode.ToList();
ReasonCode.DataBind();
this brings a resulting codes that are displayed in DataGrid. 这会带来在DataGrid中显示的结果代码。
here is Query 2 which also works 这里是查询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
};
But instead of hardcoding "801" I want to pass the result of the query1 to query 2 and display query 2 results in my dataGrid. 但不是硬编码“801”我想将query1的结果传递给查询2并在我的dataGrid中显示查询2结果。 how do I do that ?
我怎么做 ?
Something like this? 像这样的东西?
List<string> RCode = DbEntity.MobileAssetDowntimeReasonCodes
.Where(a=>a.MobileAssetCategoryID.Equals(reasonCode))
.Select(a=>a.JdeReasonCode).ToList();
var RJDEReasonCode = JDETable.F0005
.Where(a=>a.DRSY.Equals("00") && a.DRDL01 != null &&
(a.DRRT.Equals("W4") || a.DRRT.Equals("W5")) &&
RCode.Any(code => code.Contains(a.DRKY.Trim())))
.Select(a=>new { CATEGORY_CODE = a.DRRT,
REASON_CODE = a.DRKY,
DESCRIPTION = a.DRDL01
});
Uses the Enumerable.Any Method to check if the retrieved RCodes are one of the codes in your F0005 table. 使用Enumerable.Any方法检查检索到的RCode是否是F0005表中的代码之一。
var RJDEReasonCode = from a in JDETable.F0005
where
a.DRSY.Equals("00") &&
a.DRDL01 != null &&
(a.DRRT.Equals("W4") ||
a.DRRT.Equals("W5")) &&
//and use it checking if it contains a.DRKY.Trim()
RCode.Contains(a.DRKY.Trim())
select new
{
CATEGORY_CODE = a.DRRT,
REASON_CODE = a.DRKY,
DESCRIPTION = a.DRDL01
};
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.