What is the difference between these two LINQ queries?

Looking at the profiler, I see a few differences. The second query, which uses include , actually returns data from the associated CountryCodes secondary table. This part makes sense to me. However, I do not understand why this request has two joins. First, it performs a regular internal join between CountryCodes and CountyCodeTypes (by foreign key), which, I think, will be sufficient to return everything that is required to include . However, then it performs another outer join. Why?

var query = from codes in base.context.CountryCodes
            join codeTypes in base.context.CountryCodeTypes
            on codes.CountryCodeTypeId equals codeTypes.CountryCodeTypeId
            where codeTypes.CountryCodeTypeName == countryCodeType
            select codes;

var query = from codes in base.context.CountryCodes.Include("CountryCodeType")
            where codes.CountryCodeType.CountryCodeTypeName == countryCodeType
            select codes;

resulting sql:

 FROM   [dbo].[CountryCode] AS [Extent1]
 INNER JOIN [dbo].[CountryCodeType] AS [Extent2] ON [Extent1].[CountryCodeTypeId] = [Extent2].[CountryCodeTypeId]
 LEFT OUTER JOIN [dbo].[CountryCodeType] AS [Extent3] ON [Extent1].[CountryCodeTypeId] = [Extent3].[CountryCodeTypeId]
 WHERE [Extent2].[CountryCodeTypeName] = @p__linq__0

, , .Include , , , ? , .Include , , .

+3
2

SQL- Entity Framework.

INNER JOIN - where.

where codes.CountryCodeType.CountryCodeTypeName == countryCodeType

, EF , - INNER JOIN, . , INNER JOIN , Include().

OUTER JOIN , , EF Include() , . , where - OUTER JOIN, ? Well EF , , OUTER JOIN ; Include(), OUTER JOIN, , . , , , - .

Include(), , . .

var query = from codes in base.context.CountryCodes
            where codes.CountryCodeType.CountryCodeTypeName == countryCodeType
            select codes;
+4

codes.CountryCodeType.CountryCodeTypeName == countryCodeType, CountryCodeType.

, Include Join. "", , .

, , , . , SQL Server , , .

+2

Source: https://habr.com/ru/post/1769653/


All Articles