gpt4 book ai didi

c# - 从另一个子查询中获取列值

转载 作者:行者123 更新时间:2023-11-30 23:29:43 27 4
gpt4 key购买 nike

我有一个 LINQ 查询。但是我需要从另一个子查询中获取两列的值。这是我的 Linq 查询:

)from t in db.PUTAWAYs
join t0 in db.ASN_ITEM on t.AWB_NO equals t0.AWB_NO
join t1 in db.ASN_MASTER on t0.AWB_NO equals t1.AWB_NO
join t2 in db.ITEM_MASTER on t.ITEM_MASTER.ITEM_CODE equals t2.ITEM_CODE
join t3 in db.ASN_INPUT on t0.AWB_NO equals t3.AWB_NO
where
t3.ITEM == t2.ITEM_CODE &&
1 == 1 &&
(fromDate == "" || toDate == "" || (t0.REC_DATE.CompareTo(fromDate) >= 0 && t0.REC_DATE.CompareTo(toDate) <= 0)) &&
(AWB_NO == "" || (t0.AWB_NO == AWB_NO))
orderby
t.AWB_NO,
t0.REC_DATE,
t0.STYPE,
t2.PART_NO
select new ASNPutawayRep
{
AWB_NO = t.AWB_NO,
REC_DATE = t0.REC_DATE,
STYPE = t0.STYPE,
PART_NO = t2.PART_NO,
//LOCATION_AD = t.LOCATION_AD,
QNTY = t.QNTY,
//LOCATION_SD = t.LOCATION_SD,
REGION_ID = t.REGION_ID
}).Distinct();

在上面查询的选择部分,我需要从 SELECT LOC_NAME FROM LOCATION_MASTER WHERE LOC_CODE = t.LOCATION_AD< 中获取它,而不是直接获取列 t.LOCATION_AD 的值

而不是 t.LOCATION_SD,我需要从 SELECT LOC_NAME FROM LOCATION_MASTER where LOC_CODE = t.LOCATION_SD 获取值

如何在 LINQ 中编写此代码。有什么办法吗?

最佳答案

您可以使用 let条款。存储子表达式的结果以便在后续子句中使用它是很有用的。

示例:

(from t in db.PUTAWAYs
...
let locAd = from l in LOCATION_MASTER where LOC_CODE = t.LOCATION_SD select l.LOC_NAME
where
...
orderby
...
select new ASNPutawayRep
{
LOCATION_AD = locAd,
}).Distinct();

此外,您可以不使用 let 子句直接编写 LINQ:

(from t in db.PUTAWAYs
...
where
...
orderby
...
select new ASNPutawayRep
{
LOCATION_AD = from l in LOCATION_MASTER where LOC_CODE = t.LOCATION_SD select l.LOC_NAME
}).Distinct();

关于c# - 从另一个子查询中获取列值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35284329/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com