public class User
{
public long Id { get; }
public ICollection Files { get; }
}
public class File
{
public long Id { get; }
public DateTime CreatedAt { get; }
public string Name { get; }
public User? User { get; } // nullable for other reasons
}
< /code>
Я хочу имя последнего файла для каждого пользователя. Я попробовал: < /p>
var data = await context
Files
.Where(x => x.User != null)
.GroupBy(x => x.User!.Id)
.Select(x => x.MaxBy(y => y.CreatedAt)!)
.ToDictionaryAsync(k => k.User.Id, v => v.Name);
< /code>
Но это бросает < /p>
выражение LINQ ... не может быть переведено < /p>
Я предполагаю, что maxby
не поддерживается (в EF Core 8).
есть обходной путь?
объекты: < /p> [code]public class User { public long Id { get; } public ICollection Files { get; } }
public class File { public long Id { get; } public DateTime CreatedAt { get; } public string Name { get; } public User? User { get; } // nullable for other reasons } < /code> Я хочу имя последнего файла для каждого пользователя. Я попробовал: < /p> var data = await context Files .Where(x => x.User != null) .GroupBy(x => x.User!.Id) .Select(x => x.MaxBy(y => y.CreatedAt)!) .ToDictionaryAsync(k => k.User.Id, v => v.Name); < /code> Но это бросает < /p>
выражение LINQ ... не может быть переведено < /p>
Я предполагаю, что maxby [/code] не поддерживается (в EF Core 8). есть обходной путь?