У меня есть класс ProUser, который имеет ProUserContacts - это свойство без отображения, я использую это свойство для представления количества контактов, созданных конкретным proUser:
public class ProUser : BaseEntity
{
public Guid? UserId { get; set; }
...
[NotMapped]
public int ProUserContacts { get; set; }
}
Иконтроллер для запроса и сортировки списка proUser по ProUserContacts :
public IEnumerable<WebDataLayer.Models.ProUser> ListAllPaging(string sortBy)
{
var proUsers = _proUserService.Filter(p => !p.IsDelete);
proUsers = proUsers.OrderBy(x => x.JoinedDay);
foreach (var item in proUsers)
{
item.ProUserContacts = CountProUserContact(item.Id);
}
switch (sortBy?.ToLower())
{
case "prousercontact":
proUsers = proUsers.OrderBy(x => x.ProUserContacts);
break;
default:
proUsers = proUsers.OrderBy(x => x.Id);
break;
}
return proUsers;
}
Я хочу показать список proUser, отсортированный по ProUserContacts, но возникает ошибка: Указанный тип членаProUserContacts не поддерживается в LINQ to Entities.Поддерживаются только инициализаторы, элементы сущностей и свойства навигации сущностей. в этой строке:
proUsers = proUsers.OrderBy(x => x.ProUserContacts);
Я пробовал пару решений, рекомендованных по тем же темам, но тогда они не работали.Нужны ваши предложения !!!ОБНОВЛЕНИЕ: код для _proUserService: это просто набор соединений с БД с использованием Entity Framework
internal class ProUserService : EntityService<ProUser>, IProUserService
{
public ProUserService(IUnitOfWork unitOfWork, IGenericRepository<ProUser> repository) : base(unitOfWork, repository)
{
}
public List<ProUser> GetProUsersByCustomerCode(string customerCode)
{
var proUsers = Repository.Filter(x => !x.IsDelete && x.CustomerCode.ToLower().Equals(customerCode.ToLower())).ToList();
return proUsers;
}
}