LINQ to SQL : 여러 열에 대한 왼쪽 조인

제럴드 휴즈

우선 google / SO를 검색하고 몇 가지 예를 확인했지만 적절한 linq 표현식을 작성하지 못했습니다.

이것이 내 작업 SQL 쿼리의 모습입니다.

select *
from Places p
left join VoteLog v
on p.Id = v.PlaceId
and v.UserId = '076a11b9-6b14-4230-99fe-28aab078cefb' --demo userid

이것은 linq에 대한 나의 시도입니다.

public IQueryable<Place> GetAllPublic(string userId)
{
    var result = (from p in _db.Places
                 join v in _db.VoteLogs
                 on p.Id equals v.PlaceId // This works but doesn't fully reproduce my SQL query
                 // on new { p.Id, userId} equals new {v.PlaceId, v.UserId} -> Not ok
                 where p.Public == 1
                 select new
                 {
                    Id = p.Id,
                    UserId = p.UserId,
                    X = p.X,
                    Y = p.Y,
                    Titlu = p.Titlu,
                    Descriere = p.Descriere,
                    Public = p.Public,
                    Votes = p.Votes,
                    DateCreated = p.DateCreated,
                    DateOccured = p.DateOccured,
                    UserVoted = v.Vote
                 })
        .ToList()
        .Select(x => new Place()
        {
            Id = x.Id,
            UserId = x.UserId,
            X = x.X,
            Y = x.Y,
            Titlu = x.Titlu,
            Descriere = x.Descriere,
            Public = x.Public,
            Votes = x.Votes,
            DateCreated = x.DateCreated,
            DateOccured = x.DateOccured,
            UserVoted = x.UserVoted
        }).AsQueryable();
길 라드 그린

귀하의 쿼리에서 귀하는 left join. 이 시도:

from p in _db.places
join v in _db.VoteLogs

//This is how you join by multiple values
on new { Id = p.Id, UserID = userId } equals new { Id = v.PlaceId, UserID = v.UserID } 
into jointData

//This is how you actually turn the join into a left-join
from jointRecord in jointData.DefaultIfEmpty()

where p.Public == 1
select new
{
    Id = p.Id,
    UserId = p.UserId,
    X = p.X,
    Y = p.Y,
    Titlu = p.Titlu,
    Descriere = p.Descriere,
    Public = p.Public,
    Votes = p.Votes,
    DateCreated = p.DateCreated,
    DateOccured = p.DateOccured,
    UserVoted = jointRecord.Vote 
    /* The row above will fail with a null reference if there is no record due to the left join. Do one of these:
       UserVoted = jointRecord ?.Vote - will give the default behavior for the type of Uservoted
       UserVoted = jointRecord == null ? string.Empty : jointRecord.Vote */
}

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

LINQ의 여러 왼쪽 조인에 대한 올바른 구문?

분류에서Dev

SQL Server : ID 존재 여부에 대한 왼쪽 외부 조인

분류에서Dev

여러 외부 필드에 대한 Django 조인 (왼쪽 조인)

분류에서Dev

Linq를 사용하여 여러 IList <>에 왼쪽 조인

분류에서Dev

조건 또는 null을 찾는 where 절과 함께 SQL 왼쪽 조인에 대한 Linq

분류에서Dev

LINQ C #에 대한 SQL 쿼리 [여러 테이블 조인]

분류에서Dev

왼쪽 외부 조인을 사용하여 모든 ID에 대한 SQL 그룹 행

분류에서Dev

그룹화가있는 왼쪽 조인에 대한 SQL Double 결과

분류에서Dev

하나의 쿼리에서 동일한 테이블에 대한 여러 개의 왼쪽 조인 계산

분류에서Dev

Where 절이있는 왼쪽 외부 조인을 Linq에서 SQL로 변환

분류에서Dev

SQL-왼쪽 조인 후 열 손실

분류에서Dev

매우 느린 MySQL 쿼리 : 왼쪽 조인 여러 테이블과 각 테이블에 대한 where 절

분류에서Dev

조인에 대한 Linq to SQL 지원

분류에서Dev

SQL Server의 여러 열에 대한 내부 조인

분류에서Dev

SQL을 사용하는 Access의 5 개 테이블에 대한 내부 조인 및 왼쪽 조인

분류에서Dev

linq : 조건 유형이 다른 linq에서 왼쪽 조인

분류에서Dev

2 데이터 테이블의 linq를 사용하여 여러 열을 왼쪽으로 조인하고 1 개의 datagridview에 바인딩합니다.

분류에서Dev

2 데이터 테이블의 linq를 사용하여 여러 열을 왼쪽으로 조인하고 1 개의 datagridview에 바인딩합니다.

분류에서Dev

조인 후 대괄호를 사용하여 tsql에 왼쪽 조인

분류에서Dev

SQL에서 where 절을 사용하여 왼쪽 조인 조건 만들기

분류에서Dev

zf2 왼쪽 조인에서 여러 조건 적용

분류에서Dev

SQL 왼쪽 조인은 여러 행 대신 하나의 행만 반환합니다.

분류에서Dev

LINQ의 오른쪽 테이블에서 최대 하나의 행과 왼쪽 조인

분류에서Dev

일대 다 관계의 왼쪽 조인에 대한 집계 함수가있는 SQL 쿼리

분류에서Dev

Linq 왼쪽 조인이 왼쪽 개체에 데이터를 추가합니다.

분류에서Dev

SQL (왼쪽 외부 조인)을 LINQ로 변환

분류에서Dev

nullable 참조가있는 Linq에서 왼쪽 조인

분류에서Dev

MySQL 왼쪽 조인 및 조건을 동일한 열에

분류에서Dev

이 SQL 쿼리에 대한 왼쪽 외부 조인을 작성하는 방법은 무엇입니까?

Related 관련 기사

  1. 1

    LINQ의 여러 왼쪽 조인에 대한 올바른 구문?

  2. 2

    SQL Server : ID 존재 여부에 대한 왼쪽 외부 조인

  3. 3

    여러 외부 필드에 대한 Django 조인 (왼쪽 조인)

  4. 4

    Linq를 사용하여 여러 IList <>에 왼쪽 조인

  5. 5

    조건 또는 null을 찾는 where 절과 함께 SQL 왼쪽 조인에 대한 Linq

  6. 6

    LINQ C #에 대한 SQL 쿼리 [여러 테이블 조인]

  7. 7

    왼쪽 외부 조인을 사용하여 모든 ID에 대한 SQL 그룹 행

  8. 8

    그룹화가있는 왼쪽 조인에 대한 SQL Double 결과

  9. 9

    하나의 쿼리에서 동일한 테이블에 대한 여러 개의 왼쪽 조인 계산

  10. 10

    Where 절이있는 왼쪽 외부 조인을 Linq에서 SQL로 변환

  11. 11

    SQL-왼쪽 조인 후 열 손실

  12. 12

    매우 느린 MySQL 쿼리 : 왼쪽 조인 여러 테이블과 각 테이블에 대한 where 절

  13. 13

    조인에 대한 Linq to SQL 지원

  14. 14

    SQL Server의 여러 열에 대한 내부 조인

  15. 15

    SQL을 사용하는 Access의 5 개 테이블에 대한 내부 조인 및 왼쪽 조인

  16. 16

    linq : 조건 유형이 다른 linq에서 왼쪽 조인

  17. 17

    2 데이터 테이블의 linq를 사용하여 여러 열을 왼쪽으로 조인하고 1 개의 datagridview에 바인딩합니다.

  18. 18

    2 데이터 테이블의 linq를 사용하여 여러 열을 왼쪽으로 조인하고 1 개의 datagridview에 바인딩합니다.

  19. 19

    조인 후 대괄호를 사용하여 tsql에 왼쪽 조인

  20. 20

    SQL에서 where 절을 사용하여 왼쪽 조인 조건 만들기

  21. 21

    zf2 왼쪽 조인에서 여러 조건 적용

  22. 22

    SQL 왼쪽 조인은 여러 행 대신 하나의 행만 반환합니다.

  23. 23

    LINQ의 오른쪽 테이블에서 최대 하나의 행과 왼쪽 조인

  24. 24

    일대 다 관계의 왼쪽 조인에 대한 집계 함수가있는 SQL 쿼리

  25. 25

    Linq 왼쪽 조인이 왼쪽 개체에 데이터를 추가합니다.

  26. 26

    SQL (왼쪽 외부 조인)을 LINQ로 변환

  27. 27

    nullable 참조가있는 Linq에서 왼쪽 조인

  28. 28

    MySQL 왼쪽 조인 및 조건을 동일한 열에

  29. 29

    이 SQL 쿼리에 대한 왼쪽 외부 조인을 작성하는 방법은 무엇입니까?

뜨겁다태그

보관