MySql EFCore 9 enthält ein Array-Problem
Posted: 27 Jan 2025, 06:47
Ich versuche, eine „Contains List“-Linq-SQL-Abfrage an eine MySql-Datenbank durchzuführen, und die Abfrage kann nicht in SQL übersetzt werden. Dieselbe Abfrage funktioniert bei Verwendung des SQLServers.
Fehler zurückgegeben:
System.InvalidOperationException: 'Der LINQ-Ausdruck '@__arr_0' konnte nicht übersetzt werden. Zusätzliche Informationen: Die Unterstützung primitiver Sammlungen wurde nicht aktiviert. 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.
Sollte das oben Gesagte nicht funktionieren, oder gibt es eine andere Möglichkeit, ein „IN“-SQL in Linq als „contains“ für MySql zu generieren?
Code: Select all
var arr = new long[] { 5, 3, 2 };
var results = await _datacontext.ChatMessages
.Where(x => arr.Contains(x.ChatMessageId))
.ToListAsync(cancellationToken)
< /code>
wobei ChatMessage (relevante Eigenschaften) < /p>
istpublic class ChatMessage
{
public long ChatMessageId { get;set; }
}
System.InvalidOperationException: 'Der LINQ-Ausdruck '@__arr_0' konnte nicht übersetzt werden. Zusätzliche Informationen: Die Unterstützung primitiver Sammlungen wurde nicht aktiviert. 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.
Sollte das oben Gesagte nicht funktionieren, oder gibt es eine andere Möglichkeit, ein „IN“-SQL in Linq als „contains“ für MySql zu generieren?