LinqToEntities GroupПрисоединиться ArgumentException - PullRequest
0 голосов
/ 13 июня 2019

У меня есть следующая модель:

public class UserPage
{
    public int Id { get; set; }
    public string Name { get; set; }
    public string Path { get; set; }
    public bool Editable { get; set; }
}

public class UserPageSetting
{
    public int UserId { get; set; }
    public int PageId { get; set; }
    public bool Published { get; set; } = true;
    public DateTime? Modified { get; set; }

    public virtual UserPage UserPage { get; set; }
}

Я хочу выбрать все UserPages, даже если в таблице UserPageSettings нет записей с таким FK. У меня есть следующий linq:

        var joined = _dbContext.UserPages.GroupJoin(_dbContext.UserPageSettings, i => i.Id, o => o.PageId, (i, o) => o
           .Select(x => new UserPageSettingDto { Editable = i.Editable, Id = i.Id, Modified = x.Modified, Name = i.Name, Path = i.Path, Published = x.Published })
           .DefaultIfEmpty(new UserPageSettingDto { Id = i.Id, Name = i.Name, Path = i.Path, Published = true, Editable = true }))
           .SelectMany(x => x).ToList();

но я получаю следующее исключение:

ArgumentException: выражение типа 'System.Collections.Generic.IEnumerable'1 [TmsApi.Core.UserPageSetting] нельзя использовать для типа возврата 'System.Collections.Generic.IEnumerable'1 [TmsApi.Dto.UserPageSettingDto]

что не так?

...