Überschreiben der virtuellen Methode mit Generics und Constraints

8

Ich versuche, die Methode DbContext.Set<TEntity>() außer Kraft zu setzen >.

Es ist Unterschrift:

%Vor%

Zuerst habe ich das versucht:

%Vor%

... aber ich bekomme den Fehler:

  

Der Typ 'TEntity' muss ein Referenztyp sein, um ihn als Parameter 'TEntity' im generischen Typ oder in der Methode 'System.Data.Entity.DbContext.Set ()'

zu verwenden

... also habe ich versucht zu spezifizieren, dass es ein Referenztyp ist:

%Vor%

... und ich bekomme jetzt:

  

Constraints für Override- und explizite Interface-Implementierungsmethoden werden von der Basismethode geerbt und können daher nicht direkt angegeben werden.

... und wenn ich es wegnehme, bin ich wieder beim ersten Fehler.

Was will der C # -Compiler von mir?

    
Frankie B 13.09.2014, 08:56
quelle

2 Antworten

8

Nun, das ist lahm ... Ich habe Version 6.0.0 von Entity Framework verwendet.

In 6.0.0 (nach dem Durchsuchen des Verlaufs des Projekts auf Code Plex Ich habe herausgefunden, dass Set<TEntity>() nicht virtual damals war.

Schade, dass der Compiler das nicht sagen kann, anstatt mich durch die Häuser zu schicken.

Wie auch immer, das Aktualisieren von Entity Framework auf 6.1.x (wo es virtual ist) löste das Problem;

%Vor%     
Frankie B 13.09.2014, 09:14
quelle
1

Können Sie bitte eine ganze Klasse veröffentlichen?

Hier ist, wie ich benutze und ich kann ohne Probleme kompilieren.

%Vor%

Bitte stellen Sie sicher, dass Sie das neueste Entity Framework (6.X) verwenden

    
codebased 13.09.2014 09:01
quelle

Tags und Links