[Fact] // Codeplex #960 public static void LeftOuterJoin_is_not_turned_into_inner_join_if_nullable_foreign_key() { const string expectedSql = @"SELECT [Extent1].[Id] AS [Id], [Extent1].[Text] AS [Text], [Extent3].[Name] AS [Name] FROM [dbo].[Posts] AS [Extent1] LEFT OUTER JOIN [dbo].[Posts] AS [Extent2] ON [Extent1].[ParentPostId] = [Extent2].[Id] LEFT OUTER JOIN [dbo].[Blogs] AS [Extent3] ON [Extent2].[BlogId] = [Extent3].[Id] WHERE 1 = [Extent1].[Id]"; Database.SetInitializer <Codeplex960Context>(null); using (var context = new Codeplex960Context()) { context.Configuration.UseDatabaseNullSemantics = true; var query = from p in context.Posts where p.Id == 1 select new { p.Id, p.Text, p.ParentPost.Blog.Name }; QueryTestHelpers.VerifyQuery(query, expectedSql); } }
[Fact] // Codeplex #960 public static void LeftOuterJoin_is_not_turned_into_inner_join_if_nullable_foreign_key() { const string expectedSql = @"SELECT [Extent1].[Id] AS [Id], [Extent1].[Text] AS [Text], [Extent3].[Name] AS [Name] FROM [dbo].[Posts] AS [Extent1] LEFT OUTER JOIN [dbo].[Posts] AS [Extent2] ON [Extent1].[ParentPostId] = [Extent2].[Id] LEFT OUTER JOIN [dbo].[Blogs] AS [Extent3] ON [Extent2].[BlogId] = [Extent3].[Id] WHERE 1 = [Extent1].[Id]"; Database.SetInitializer<Codeplex960Context>(null); using (var context = new Codeplex960Context()) { context.Configuration.UseDatabaseNullSemantics = true; var query = from p in context.Posts where p.Id == 1 select new { p.Id, p.Text, p.ParentPost.Blog.Name }; QueryTestHelpers.VerifyQuery(query, expectedSql); } }