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
Freigeben: 2025-02-01 14:46:11
Original
367 Leute haben es durchsucht

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>
Nach dem Login kopieren
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>
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage