Zusätzliche Eigenschaften von Entity Framework werden nicht von DbContext.Database.SqlQuery aufgefüllt

8

Wenn ich einer automatisch generierten EF-Klasse mithilfe einer zusätzlichen partiellen Klasse zusätzliche Eigenschaften hinzufüge, werden diese Eigenschaften beim Ausführen von Abfragen für die Datenbank nicht ausgefüllt oder gefüllt.

Beispiel:

Automatisch generierte Klasse Person:

%Vor%

Meine eigene Teilklasse

%Vor%

Wenn ich die folgende Abfrage mache:

%Vor%

und verwenden

%Vor%

Die ID, FirstName und LastName sind ausgefüllt, aber nicht der DisplayName.

Wenn ich jedoch eine ganz neue Klasse namens MyPerson

erstelle %Vor%

Und führen Sie die gleiche Abfrage mit dem Typ von MyPerson der DisplayName ist ebenfalls gefüllt.

Kann jemand das erklären oder mir sagen, wie ich dieses Problem beheben kann, damit ich Partials verwenden kann, anstatt neue Klassen / Typen zu erstellen.

Laden Sie ein Beispiel herunter: Ссылка

UPDATE 2015-12-28: Während ich andere stackoverflow- und Codeproject-Foren durchgelesen habe, habe ich eine andere Möglichkeit gefunden, es zum Laufen zu bringen:

1) Verwenden von Typebuilder ( Ссылка ), aber fällig Für alle Arten von Projektabhängigkeiten hatte ich Probleme, bereits erstellte Typen zu finden und den Speicher nicht zu sprengen;

2) Beste Option bisher: Vererbung verwenden.

Wenn ich eine andere Klasse mit genau diesen Zeilen erstelle:

%Vor%

Ich kann den folgenden Code verwenden (er ignoriert das Mapping in der EDMX-Datei und verwendet reflection:

%Vor%     
LiQuick.net 24.12.2015, 08:08
quelle

2 Antworten

1

Die beste Option bisher, ohne viel Code schreiben zu müssen oder viel Code zu überprüfen, wenn Datenbankänderungen auftreten, ist die Verwendung der Vererbung.

Wenn ich eine andere Klasse mit nur dieser Linie erstelle:

%Vor%

Ich kann den folgenden Code verwenden (er ignoriert die Zuordnung in der EDMX-Datei und verwendet Reflektion):

%Vor%     
LiQuick.net 04.01.2016 10:40
quelle
0

versuche, das *

zu entfernen %Vor%

Alternativ könnten Sie dies tun ist Code ... und dann müssten Sie es nicht in Ihrem rohen SQL

enthalten %Vor%     
Seabizkit 24.12.2015 11:38
quelle

Tags und Links