Nguyên nhân là do nhà cung cấp EF cho MySQL hoặc bản thân máy chủ không thể dịch linq này sang SQL, vì vậy trước tiên bạn nên lấy dữ liệu từ máy chủ và chỉ sau đó nhóm nó với Take(2)
:
var test = unitOfWork.ChatMensagemRepository.GetAll()
.Where(x => x.PessoaCodigoPessoa == codigoRemetente)
//this section is added
.Select(x => new
{
x.ChatConversaCodigoChatConversa,
x.prop1,//specify only columns, which you need for below code with Take
x.prop2
}).ToList()
//end of section
.GroupBy(x => x.ChatConversaCodigoChatConversa)
.Select(group => new
{
codigoChat = group.Key,
list = group.Take(2).Select(mensagem => new
{
mensagem.prop1,
mensagem.prop2
}).ToList()
}).ToList();