Ü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>
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!