복붙노트

[SQL] 무엇을 포함 않습니다 () LINQ에서합니까?

SQL

무엇을 포함 않습니다 () LINQ에서합니까?

나에게 어떤 이해가되지 않는 MSDN에서 너무도 설명 - 나는 연구를 많이하려고 노력하지만 난 더 데시벨 사람의입니다. 사람이 설명하고, SQL 쿼리의 기간에 무엇을 포함 () 문에 몇 가지 예제를 제공 주실 래요?

해결법

  1. ==============================

    1.모든 고객의 목록을 얻으려면, 예를 들어 보자 말 :

    모든 고객의 목록을 얻으려면, 예를 들어 보자 말 :

    var customers = context.Customers.ToList();
    

    그리고의 각 고객 객체가 주문의 그것의 세트에 대한 참조를 가지고, 각각의 주문도 제품을 참조 할 수 있습니다 LineItems에 대한 참조를 가지고 있다고 가정하자.

    당신이 볼 수 있듯이, 많은 관련 기관과 최고 수준의 객체를 선택하면 요구 사항이 많은 소스로부터 데이터를 가져 오도록하는 쿼리 될 수 있습니다. 성능 조치로, ()를 사용하면 동일한 쿼리의 일부로 데이터베이스에서 읽어야 관련있는 엔티티 표시 할 수 있습니다 포함합니다.

    같은 예제를 사용하여,이 관련 주문의 모든 헤더에 가져다 없지만, 다른 기록의 것도 있습니다

    var customersWithOrderDetail = context.Customers.Include("Orders").ToList();
    

    당신은 SQL, 포함하지 않고 첫 번째 문 (요청 이후 최종 지점) 간단한 문장을 생성 할 수 있습니다 :

    SELECT * FROM Customers;
    

    다음과 같이 보일 수 있습니다 ( "주문")를 포함 호출 마지막 문 :

    SELECT *
    FROM Customers JOIN Orders ON Customers.Id = Orders.CustomerId;
    
  2. ==============================

    2.난 그냥 그 "포함"열망로드의 일부입니다 추가 싶었어요. 그것은 마이크로 소프트에 의해 엔티티 프레임 워크 (6) 사용 설명서에 설명되어 있습니다. 여기 링크가 있습니다: https://docs.microsoft.com/en-us/aspnet/mvc/overview/getting-started/getting-started-with-ef-using-mvc/reading-related-data-with-the-entity-framework- 에서-AN-ASP-NET-MVC 애플리케이션

    난 그냥 그 "포함"열망로드의 일부입니다 추가 싶었어요. 그것은 마이크로 소프트에 의해 엔티티 프레임 워크 (6) 사용 설명서에 설명되어 있습니다. 여기 링크가 있습니다: https://docs.microsoft.com/en-us/aspnet/mvc/overview/getting-started/getting-started-with-ef-using-mvc/reading-related-data-with-the-entity-framework- 에서-AN-ASP-NET-MVC 애플리케이션

    링크 된 페이지에서 발췌 :

  3. ==============================

    3.당신 하위 항목 그렇지 않으면 게으른 로딩 될 시나리오에 열망 -로드를 강제로 생각하십시오.

    당신 하위 항목 그렇지 않으면 게으른 로딩 될 시나리오에 열망 -로드를 강제로 생각하십시오.

    쿼리 EF 처음에는 더 큰 결과를 얻을 것입니다 데이터베이스에 전송되지만 포함 된 항목에 액세스 할 때 액세스에는 후속 쿼리는 이루어지지 않습니다.

    먼저 하위 항목에 액세스 할 때 다른 한편으로는, 그것없이, EF는 나중에 별도의 쿼리를 실행하는 것입니다.

  4. from https://stackoverflow.com/questions/26661771/what-does-include-do-in-linq by cc-by-sa and MIT license