반응형
Entity Framework 조인 3 테이블
세 개의 테이블을 조인하려고하는데 방법을 이해할 수 없습니다 ...
조인 2 테이블을 완료했습니다
var entryPoint = dbContext.tbl_EntryPoint
.Join(dbContext.tbl_Entry,
c => c.EID,
cm => cm.EID,
(c, cm) => new
{
UID = cm.OwnerUID,
TID = cm.TID,
EID = c.EID,
}).
Where(a => a.UID == user.UID).Take(10);
TID PK와 함께 tbl_Title 테이블 을 포함 시키고 제목 필드를 얻고 싶습니다 .
고마워
구문 기반 쿼리를 사용하면 더 쉬울 것이라고 생각합니다.
var entryPoint = (from ep in dbContext.tbl_EntryPoint
join e in dbContext.tbl_Entry on ep.EID equals e.EID
join t in dbContext.tbl_Title on e.TID equals t.TID
where e.OwnerID == user.UID
select new {
UID = e.OwnerID,
TID = e.TID,
Title = t.Title,
EID = e.EID
}).Take(10);
그리고 아마도 상위 10 개 항목을 올바르게 리턴 orderby
하도록 절을 추가해야 Top(10)
합니다.
이것은 테스트되지 않았지만 구문이 람다 쿼리에서 작동해야한다고 생각합니다. 이 구문을 사용하여 더 많은 테이블을 조인 할 때 조작하려는 값에 도달하려면 새 개체로 드릴 다운해야합니다.
var fullEntries = dbContext.tbl_EntryPoint
.Join(
dbContext.tbl_Entry,
entryPoint => entryPoint.EID,
entry => entry.EID,
(entryPoint, entry) => new { entryPoint, entry }
)
.Join(
dbContext.tbl_Title,
combinedEntry => combinedEntry.entry.TID,
title => title.TID,
(combinedEntry, title) => new
{
UID = combinedEntry.entry.OwnerUID,
TID = combinedEntry.entry.TID,
EID = combinedEntry.entryPoint.EID,
Title = title.Title
}
)
.Where(fullEntry => fullEntry.UID == user.UID)
.Take(10);
var entryPoint = (from ep in dbContext.tbl_EntryPoint
join e in dbContext.tbl_Entry on ep.EID equals e.EID
join t in dbContext.tbl_Title on e.TID equals t.TID
where e.OwnerID == user.UID
select new {
UID = e.OwnerID,
TID = e.TID,
Title = t.Title,
EID = e.EID
}).Take(10);
참고 URL : https://stackoverflow.com/questions/21051612/entity-framework-join-3-tables
반응형
'development' 카테고리의 다른 글
Java null 확인 .equals () 대신 ==를 사용하는 이유 (0) | 2020.08.03 |
---|---|
ls -l 출력의 각 라인을 반복 (0) | 2020.08.03 |
두 개의 데이터 프레임을 인덱스로 병합 (0) | 2020.08.03 |
Groovy에서 전역 변수를 작성하고 액세스하려면 어떻게합니까? (0) | 2020.08.03 |
PHP set_time_limit ()를 사용하여 nginx 504 게이트웨이 시간 초과 방지 (0) | 2020.08.03 |