2016-12-29 2 views
0

.NET Core 1.1.0, EF Core 1.1.0. Ich frage einige Dinge aus meiner DB in einer Weise, dass es viel effizienter ist, an eine gespeicherte Prozedur zu delegieren. Ich möchte einige zusätzliche Dinge zurückgegeben, die nicht Teil meiner Standardklasse sind, also until ad-hoc return types are supported Ich habe diese zusätzlichen Eigenschaften zu meiner Basisklasse hinzugefügt. Das Problem besteht jedoch darin, dass EF nun bei allen anderen Aufrufen Spalten für jede dieser Eigenschaften erwartet.Ignorieren Sie die Klasseneigenschaft mit Ausnahme der gespeicherten Prozedur in EF Core

Wenn ich konfigurieren, dass diese zusätzlichen Eigenschaften mit diesem:

entity.Ignore(p => p.PropertyName); 

die Eigenschaften ignoriert werden, wenn ich aus der gespeicherten Prozedur ziehen. Ich kenne keinen anderen Weg.

Wie kann ich diese zusätzlichen Eigenschaften von der gespeicherten Prozedur zurückgegeben bekommen, aber sie alle anderen Zeiten ignorieren?

Ich bin mit der Abfrage wie diese (docs):

var popular = await _context.Posts 
    .FromSql("EXEC usp_Post_Popular {0}, {1}", start, popCount) 
    .ToListAsync(); 
+0

Sie müssen verschiedene Zuordnungen für Ihren DbContext verarbeiten –

Antwort

0

Ich konnte dies lösen, indem eine neue Klasse nur für die Rückgabe der Ergebnisse dieser Verfahren zu schaffen. Ich habe eine DbSet in meiner Kontextkonfiguration für die Klassen erstellt und .FromSql() auf diesen aufgerufen. Keine Konfiguration ist notwendig in OnModelCreating(); Ich habe dieser Funktion nichts hinzugefügt.

Verwandte Themen