2017-05-15 2 views
0

Ich habe den folgenden Code Stimmen:C# - Kann nicht Entity-Schnittstelle Einheit

public class CoursesController : ApiController 
{ 
    private ITanulmanyokEntities _entities; 

    public CoursesController() 
     : this(new TanulmanyokEntities()) // ERROR HERE 
    { 
    } 
    public CoursesController(ITanulmanyokEntities entities) 
    { 
     if (entities == null) 
      throw new ArgumentNullException("entities"); 

     _entities = entities; 
    } 

} 

Hier habe ich eine Schnittstelle:

public interface ITanulmanyokEntities : IDisposable 
{ 
    Int32 SaveChanges(); 

    DbSet<Application> Applications { get; set; } 
    DbSet<Course> Courses { get; set; } 
    DbSet<EducationSubject> EducationSubjects { get; set; } 
    DbSet<EducationUser> EducationUsers { get; set; } 
    DbSet<Program> Programs { get; set; } 

} 

, die angeblich eine Schnittstelle für das Unternehmen sein, erzeugt aus die Datenbank:

public partial class TanulmanyokEntities : DbContext 
{ 
    public TanulmanyokEntities() 
     : base("name=TanulmanyokEntities") 
    { 
    } 

    protected override void OnModelCreating(DbModelBuilder modelBuilder) 
    { 
     throw new UnintentionalCodeFirstException(); 
    } 

    public virtual DbSet<Application> Applications { get; set; } 
    public virtual DbSet<Course> Courses { get; set; } 
    public virtual DbSet<EducationSubject> EducationSubjects { get; set; } 
    public virtual DbSet<EducationUser> EducationUsers { get; set; } 
    public virtual DbSet<Program> Programs { get; set; } 
} 

Allerdings kann ich nicht scheinen, einen in die andere zu konvertieren. Siehe kommentierte Zeile. Das Problem ist, dass mein Compiler die Schnittstelle/reale Sache nicht konvertieren kann. Ich denke, ich habe alles implementiert, was implementiert werden muss (ich befolge auch einen Beispielcode, der funktioniert). Was vermisse ich?

+0

Sie können TanulmanyokEntities nicht in ITanulmanyokEntities konvertieren, da die Schnittstelle nicht implementiert wird. Wozu dient diese Schnittstelle? – anserk

+0

Es ist eine Schnittstelle für 'TanulmanyokEntities'. Der Beispielcode vom Lehrer ist GENAU derselbe, und es funktioniert für ihn ... Ich führe gerade diesen Code aus. –

+0

Können Sie den Beispiellink posten? – anserk

Antwort

0

Sie müssen erklären, dass TanulmanyokEntities ITanulmanyokEntities implementiert

public partial class TanulmanyokEntities: DbContext, ITanulmanyokEntities

+0

Ich glaube nicht, dass das richtig ist. Zuerst funktioniert mein Beispielcode ohne diese Deklaration, und auch "TanulmanyokEntities" wird automatisch generiert und kommt mit einer Warnung: 'Dieser Code wurde aus einer Vorlage generiert. //// Manuelle Änderungen an dieser Datei können zu unerwartetem Verhalten in Ihrer Anwendung führen. –

+0

Ah .. Ich wette, dass Sie zuerst keinen Code verwenden. Die TanulmanyokEntities-Klasse, die generiert wird, ist eine Partial-Klasse, sodass Sie eine Datei hinzufügen können, die die Schnittstelle wie im obigen Code deklariert. C# Teilklassen müssen sich in derselben Baugruppe und demselben Modul befinden. –

0

Die Lösung weitere Teilklasse zu schaffen war:

public partial class TanulmanyokEntities : ITanulmanyokEntities 
{ 
} 

Auf diese Weise, ich didn‘ Ich muss mich mit dem generierten Code herumschlagen.