Code: Select all
public async Task GetChats()
{
return await (
from uc in context.UserChats
where uc.UserId == httpContextProvider.CurrentUserId
join x in context.Chats on uc.ChatId equals x.Id
from lastMessage in x.Messages
.OrderByDescending(m => m.CreatedAt)
.Take(1)
.DefaultIfEmpty()
select new ChatResponse(
x.Id,
x.Name,
x.Description,
x.ChatType,
x.UserChats.Count(),
true,
lastMessage.Content,
lastMessage.CreatedAt,
lastMessage.User.UserName
)).ToListAsync();
}
Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware[1]
Eine nicht behandelte Ausnahme ist aufgetreten während der Ausführung der Anfrage.
System.InvalidOperationException: Der LINQ-Ausdruck 'DbSet()
.Where(m => EF.Property(StructuralTypeShaperExpression:
SnapTalk.Domain.Entities.ChatEntity
ValueBufferExpression:
ProjectionBindingExpression: Inner
IsNullable: False
, „Id“) != null && object.Equals(
objA: (object)EF.Property(StructuralTypeShaperExpression:
SnapTalk.Domain.Entities.ChatEntity
ValueBufferExpression:
ProjectionBindingExpression: Inner
IsNullable: False
, " Id"),
objB: (object)EF.Property(m, "ChatId")))
.OrderByDescending(m => m.CreatedAt)' konnte nicht übersetzt werden. Zusätzliche Informationen: Die Übersetzung des Mitglieds „CreatedAt“ für den Entitätstyp „MessageEntity“ ist fehlgeschlagen. Dies tritt häufig auf, wenn die Zuordnung des angegebenen Mitglieds aufgehoben wird. Schreiben Sie die Abfrage entweder in eine übersetzbare Form um oder wechseln Sie explizit zur Clientauswertung, indem Sie einen Aufruf von „AsEnumerable“, „AsAsyncEnumerable“, „ToList“ oder „ToListAsync“ einfügen. Weitere Informationen finden Sie unter https://go.microsoft.com/fwlink/?linkid=2101038.
Bearbeiten:
Code: Select all
public class MessageEntity
{
public Guid Id { get; set; }
public required string Content { get; set; }
public DateTime CreatedAt { get; } = DateTime.Now;
public DateTime? UpdatedAt { get; set; }
public string? AttachmentFileName { get; set; }
public Guid UserId { get; set; }
public Guid ChatId { get; set; }
public Guid? ReplyToMessageId { get; set; }
public MessageEntity? ReplyToMessage { get; set; }
public ICollection Replies { get; set; } = new List();
public UserEntity User { get; set; }
public ChatEntity Chat { get; set; }
}