Как заставить Entity Framework Core запрашивать некоторые поля при выполнении JOIN

Я использую LINQ для запроса данных из нескольких таблиц.

var test= await _context.Article
.Select(a => new
{
    a.ID,
    a.Title,
    a.CreatedTime,
    a.EditedTime,
    a.Author.UserName,
    a.AuthorID
}).ToListAsync();

Author - это свойство навигации в классе Article.

Но я получил это из журнала:

Executed DbCommand (6ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
      SELECT [a].[ID], [a].[AuthorID], [a].[Content], [a].[CreatedTime], [a].[EditedTime], [a].[Title], [a.Author].[Id], [a.Author].[AccessFailedCount], [a.Author].[ConcurrencyStamp], [a.Author].[Email], [a.Author].[EmailConfirmed], [a.Author].[LockoutEnabled], [a.Author].[LockoutEnd], [a.Author].[NormalizedEmail], [a.Author].[NormalizedUserName], [a.Author].[PasswordHash], [a.Author].[PhoneNumber], [a.Author].[PhoneNumberConfirmed], [a.Author].[SecurityStamp], [a.Author].[TwoFactorEnabled], [a.Author].[UserName]
      FROM [Article] AS [a]
      LEFT JOIN [AspNetUsers] AS [a.Author] ON [a].[AuthorID] = [a.Author].[Id]
      ORDER BY [a].[AuthorID]

Мне просто нужна часть поля, но он запрашивает их все. Если я удалю строку a.Author.UserName из своего кода, она будет работать должным образом.

Я что-то упустил?

Я использую Entity Framework Core 1.1.0 с Microsoft SQL Server.


person 胡玮文    schedule 16.01.2017    source источник


Ответы (1)


Такое поведение уже задокументировано как ошибка, исправление запланировано на этапе 2.0.0.

person Dmitry    schedule 16.01.2017
comment
Прохладный. Теперь вопрос только в том, когда выйдет 2.0.0 и что людям делать со всеми этими ошибками до тех пор :) - person Ivan Stoev; 16.01.2017