[SQL] 지역 시퀀스는이 포함 제외한 쿼리 연산자의 SQL 구현 () 연산자에 LINQ에서 사용할 수 없습니다
SQL지역 시퀀스는이 포함 제외한 쿼리 연산자의 SQL 구현 () 연산자에 LINQ에서 사용할 수 없습니다
내 프로젝트에 LINQ를 사용하고 내 코드는 다음과 같습니다
var SE = from c in Shop.Sections
join c1 in obj.SectionObjects on c.SectionId equals c1.SectionId
select c;
dataGridView1.DataSource = SE;
하지만 광고 dataGridView1.DataSource = SE이 오류에 직면; 오류 메시지는 다음과 같습니다
해결법
-
==============================
1.당신은이 SQL 소스와 로컬 소스 사이에 가입 할 수 없습니다. 당신은 당신이 그들과 합류하기 전에 메모리에 SQL 데이터를 가지고해야합니다. 이 경우, 당신은 정말 당신이 첫 번째 컬렉션의 요소를 가지고 있기 때문에 조인을 수행하지 않는, 당신이 원하는 것은 ...를 선택 메소드를 포함하는 경우 ... 당신이 사용하여 얻을 수있는 쿼리 selectid이다.
당신은이 SQL 소스와 로컬 소스 사이에 가입 할 수 없습니다. 당신은 당신이 그들과 합류하기 전에 메모리에 SQL 데이터를 가지고해야합니다. 이 경우, 당신은 정말 당신이 첫 번째 컬렉션의 요소를 가지고 있기 때문에 조인을 수행하지 않는, 당신이 원하는 것은 ...를 선택 메소드를 포함하는 경우 ... 당신이 사용하여 얻을 수있는 쿼리 selectid이다.
var SE = Shop.Sections.Where( s => obj.SectionObjects .Select( so => so.SectionId ) .Contains( s.SectionId )) .ToList();
로 변환
select * from Sections where sectionId in (...)
where 절에 대한 값은 로컬 객체의 컬렉션에있는 ID 목록에서 온다.
-
==============================
2.당신은 SQL 소스에 로컬 소스에 참가할 수 없습니다 하지만 당신은 지역, v.v.에 SQL 소스에 가입 할 수 있습니다
당신은 SQL 소스에 로컬 소스에 참가할 수 없습니다 하지만 당신은 지역, v.v.에 SQL 소스에 가입 할 수 있습니다
var SE = from c1 in obj.SectionObjects join c in Shop.Sections on c1.SectionId equals c.SectionId select c;
즉, 로컬 소스가 먼저 와야
-
==============================
3.이 작업을해야 오히려 메모리보다 (IN을 사용하여) 데이터베이스 측에서 수행 할 수 :
이 작업을해야 오히려 메모리보다 (IN을 사용하여) 데이터베이스 측에서 수행 할 수 :
var SE = from c in Shop.Sections where obj.SectionObjects.Select(z => z.SectionId).Contains(c.SectionId) select c;
L2S 프로파일 사물의 이러한 종류의 많은 도움이 될 것입니다 - 당신은 다른 SQL 내 솔루션 및 기타 솔루션에 의해 생성되는 비교할 수 있습니다.
-
==============================
4.Shop.Sections.AsEnumerable에서 C에서 VAR SE = (). ToList () obj.SectionObjects.AsEnumerable ()에서 C1 가입 할 수 있습니다. ToList ()를 c.SectionId가 c1.SectionId 같습니다에 C를 선택;
Shop.Sections.AsEnumerable에서 C에서 VAR SE = (). ToList () obj.SectionObjects.AsEnumerable ()에서 C1 가입 할 수 있습니다. ToList ()를 c.SectionId가 c1.SectionId 같습니다에 C를 선택;
dataGridView1.DataSource은 SE를 =;
from https://stackoverflow.com/questions/8164460/local-sequence-cannot-be-used-in-linq-to-sql-implementation-of-query-operators-e by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 어떻게 총칭 SQL Server 쿼리를 사용하여 정렬 할 수 있나요 A '버전 번호'열 (0) | 2020.05.04 |
---|---|
[SQL] ㄱ 열 합을 행을 제한하는 MySQL은 소정의 값과 같다 (0) | 2020.05.04 |
[SQL] 데이터베이스 효율 - 사용자의 사용자 대 테이블 당 테이블 (0) | 2020.05.04 |
[SQL] 어떻게 Doctrine2에서 SQL의 YEAR (), MONTH () 및 DAY ()를 사용할 수 있습니까? (0) | 2020.05.04 |
[SQL] SQL, 어떻게 연결할 결과에? (0) | 2020.05.04 |