Как упорядочить по максимальному свойству вложенной коллекцииC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Как упорядочить по максимальному свойству вложенной коллекции

Сообщение Anonymous »

У меня есть таблица с пользователями, и у каждой может быть много LogActivity, поэтому существует отношение один-ко-многим. Я хочу отсортировать коллекцию пользователей по их максимальному свойству DateSearch LogActivities (другими словами, пользователи с самыми ранними LogActivities будут вверху).
Но коллекция LogsActivities может быть пустой. Другое требование — пользователи должны оставаться в состоянии IQueryable. Это важно из-за производительности.

Исключение недопустимой операции: исключение возникло при чтении значение базы данных. Ожидаемый тип — «System.DateTime», но фактическое значение имело тип «System.String») и предупреждения («Выражение LINQ «Max()»» не может быть переведено и будет оцениваться локально.

//(ToListAsync just for testing \\ identities is IQueryable)

//(defaultLogsActivity is LogActivity with DateSearch = DateTime.MinValue)
var qwe = await identities.OrderBy(u => u.LogsUserActivity.DefaultIfEmpty(defaultLogsActivity))
.ToListAsync();// => exception("Expression of type 'UserService.Data.TDO_Models.ManagerUsers.LogsUserActivityEntity' cannot be used for parameter of type 'Microsoft.EntityFrameworkCore.Storage.ValueBuffer' of method DefaultIfEmpty")

var qwe = await identities.OrderBy(u => (u.LogsUserActivity.Count != 0) ? u.LogsUserActivity.Max(l => l.DateSearch) : DateTime.MinValue )
.ToListAsync(); //=> exception ("Invalid operation exception: an exception occurred while reading a database value. The expected type was 'System.DateTime' but the actual value was of type 'System.String'") and warnings ("The LINQ expression '"Max()"' could not be translated and will be evaluated locally.")

public class User
{
public Guid Id { get; set; }
public List LogActivities { get; set; }
}

public class LogActivity
{
public DateTime DateSearch { get; set; }
}


Подробнее здесь: https://stackoverflow.com/questions/543 ... x-property
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»