У меня есть следующая модель:
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]
что не так?