我有 2 個使用 LINQ 的查詢,第一個是 lambda 運算式,第二個是標準 LINQ。我想在兩者中獲得相同的輸出,但是第二個查詢沒有給我輸出。
我該如何解決這個問題,加入表格 2 次的邏輯是什么?
var query1 = _context.UserEdu.Where(x => x.personId == id && x.status ==PersonEducationStatus.SA.ToString())
.Join(_context.Educations.Where(x => x.statusCode == ACTIVE), pe => pe.classNum, s => s.classNum, (pe, class) => class)
.Join(_context.Educations.Where(x => x.isActive), s => s.eduNum, defaultS => defaultS.eduNum, (class, defaultclass) => new
{ class, defaultclass.classNum })
.Join(_context.EducationDocument.Where(...),
s => s.classNum,
rd => rd.entity_id,
(class, rd) => new
{
... output
});
var query2 = (from pedu in _context.UserEdu.Where(x => x.personId == id && x.status == PersonEducationStatus.SA.ToString())
join class in _context.Educations.Where(x => x.statusCode == ACTIVE) on pedu.classNum equals class.classNum
join defaultclass in _context.Educations.Where(x => x.isActive) on pedu.classNum equals defaultclass.classNum
join rd in _context.EducationDocument.Where(...) on defaultclass.classNum equals rd.entity_id
select new
{
... output same with first query
});
uj5u.com熱心網友回復:
好吧,
pedu.classNum equals defaultclass.classNum
不是
s => s.eduNum, defaultS => defaultS.eduNum
IOW,您在第二次加入時使用了不同的鍵。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/442179.html
