Heim >Backend-Entwicklung >C++ >Warum werfen meine LINQ -to -Entitäten -Abfrage 'Die Entität kann nicht in einem LINQ zu Abfrage von Entitäten konstruiert werden'?

Warum werfen meine LINQ -to -Entitäten -Abfrage 'Die Entität kann nicht in einem LINQ zu Abfrage von Entitäten konstruiert werden'?

Barbara Streisand
Barbara StreisandOriginal
2025-02-01 14:46:11416Durchsuche

Why Does My LINQ to Entities Query Throw

linq zu Entitäten Abfragefehler: "Entitäten in linq können nicht zu Entitäten abfragen"

Überprüfen Sie bei der Verwendung von Entity -Framework die Anomalien, die während des Ausführungsprozesses auftreten können. Ein häufiger Fehler ist "Konstruktion von Entitäten in der LINQ in Entitäten Abfrage". Dieser Fehler tritt auf, wenn versucht wird, das Abfrageergebnis in die peripheren Entitäten zu projizieren.

Der Grund für den Fehler

In einem bestimmten Codefragment, Abfrage:

Versuchen Sie, die Abfrageergebnisse auf eine neue Instanz der Produkteinheit zu projizieren. In der LINQ -zu -Entitäten -Abfrage kann das Entität jedoch nicht konstruiert oder wieder aufgebaut werden, da das Objekt des Objekts von ORM verwaltet wird.

<code class="language-csharp">from p in db.Products
where p.CategoryID == categoryID
select new Product { Name = p.Name };</code>
Lösung: Verwenden Sie den anonymen Typ oder dto

Um diesen Fehler zu überwinden und eine angepasste Option durchzuführen, können Sie anonymer Typen oder Datenübertragungsobjekte (DTO) verwenden. Anonymer Typ ist ein temporärer Namenstyp, der eine Reihe von Attributen speichern kann, während DTO eine benutzerdefinierte Klasse ist, die ein bestimmtes Domänenobjekt angibt. erstellen dto

In diesem Beispiel können Sie in diesem Beispiel nur das Namensattribut benötigen, sodass Sie auf folgende Weise dto erstellen können:

Ändern Sie die Anfrage, die auf dto

projiziert werden soll

Mit DTO können Sie jetzt die Anfrage ändern, um sie auf dem DTO zu projizieren:
<code class="language-csharp">public class ProductDTO
{
    public string Name { get; set; }
}</code>

Durch die Projektion an DTO können Sie Daten erfolgreich abrufen und vermeiden, dass "Entität in linq zu Entities Intity -Fehler" -Fehler konstruiert werden.

Das obige ist der detaillierte Inhalt vonWarum werfen meine LINQ -to -Entitäten -Abfrage 'Die Entität kann nicht in einem LINQ zu Abfrage von Entitäten konstruiert werden'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn