2009-08-09 2 views
0

레코드 목록을 가져 오기 위해 Linq를 Sql 또는 Linq로 실행하면 쿼리를 실행하여 테이블의 모든 필드를 선택합니다. 효율적인 솔루션입니까? 말할 수 있습니다 : 나는 내가 모든 필드 여부 필요 여부를 테이블에서 모든 필드를 얻기 위해 쿼리를 실행LINQ To SQL 또는 LINQ To Entities를 사용하여 db에서 데이터를 가져 오는 효율적인 방법은 무엇입니까?

dim lstCustomers = from c in db.Customers select c 

이 LINQ를 실행합니다. 나는 내가 다음 2 쿼리를 사용해야하는 경우 그래서 난 (난 단지의 CustomerID와 이름이 필요합니다)보기에서이 쿼리

dim lstCustomers = from c in db.Customers _ 
         select new Customer with { c.CustomerID, c.Name } 

를 작성해야 MVC와 asp.net을 사용하고 뭐죠 LINQ와 엔티티 프레임 워크의 장점. SQL 쿼리 (구문이 다름)로 할 수있는이 일

누구든지 도움을받을 수 있습니까?

답변

2

우선 LINQ 쿼리가 지연 평가됩니다. 즉, 한 줄만 쓰면 아무 것도하지 않는다는 것을 의미하므로 실제로 결과를 For Each으로 반복한다고 가정합니다.

첫 번째 질문에 대한 답은 예입니다. 모든 입력란은 첫 번째 문과 함께 데이터베이스에서 검색됩니다.

예.하지만 SQL을 직접 사용하려면 수동으로 엔티티 클래스를 만들고 SqlDataReader 또는 그 라인에서 제공하는 추상화 수준을 달성하기 위해 수동으로 데이터를 검색해야합니다. 그것은 당신을 대신하여 더 많은 작업입니다. LINQ to SQL을 사용하면 명시 적으로 코드를 작성하여 데이터베이스에 대한 연결을 열 필요조차 없습니다.

0

actuly의 LINQ는 쓰기 정상 쓰기 SQL 쿼리를 통해 장점의 다른 세트가 있습니다

는 SQL 쿼리를 다음 과부하 단계 쓴 경우 : 당신이
2. 당신이 필요하여 SQL 연결 클래스를 필요
1. sql 명령 또는 sqldataadapter.
3. 그러면 datatable 및 dataset과 같은 컨테이너가 필요합니다.

linq을 사용하는 동안 모든 단계가 필요하지 않습니다. 위에서 작성한대로 쿼리를 작성하십시오.

또한 sqlquery에 잘못된 내용을 적어두면 컴파일 시간 오류가 발생하지 않습니다. 오류는 런타임 중에 쿼리를 실행할 때만 생성됩니다.
SQL 쿼리와 달리 linq는 컴파일 타임 오류를 제공합니다.

또한 linq은 강력하게 컬렉션 유형입니다.