3

Ich versuche, eine Scaffold-MVC-Ansicht in .NET Core RC2 hinzuzufügen, aber ich erhalte den Fehler "Es gibt keinen Entitätstyp ClientsOverviewViewModel auf DbContext RNW.Data.ApplicationDbContext".Kann keine Ansicht in .Net Core RC2 hinzufügen

Add View to project

Mit dem Blick ich eine Liste von Client angezeigt werden soll. Kundencenter Klasse:

public class Client : Person 
{ 
    #region Personal Data 
    public Nationality Nationality { get; set; } 
    public Confession Confession { get; set; } 
    public string SSN { get; set; } 
    public MaritalStatus MaritalStatus { get; set; } 
    #endregion 
    ... 
} 

    public class Person 
{ 
    public string Firstname { get; set; } 
    public string Lastname { get; set; } 
    public Sex Sex { get; set; } 
    public DateTime Birthday { get; set; } 
    public Address Birthplace { get; set; } 
    public Address ResidentialAddress { get; set; } 
    public string EMail { get; set; } 
    public string PhoneNumber { get; set; } 
} 

in der Liste I 5 Objekte angezeigt werden soll, die ich in meinem Ansichtsmodell gesetzt haben:

public class ClientsOverviewViewModel 
{ 
    [Display(Name = "Nachname")] 
    public string LastName { get; set; } 
    [Display(Name = "Vorname")] 
    public string FirstName { get; set; } 
    [Display(Name = "Geschlecht")] 
    public Sex Sex { get; set; } 
    [Display(Name = "Staatsbürgerschaft")] 
    public string Nationality { get; set; } 
    [Display(Name="Geburtsdatum")] 
    public DateTime? DateOfBirth { get; set; } 
} 

Auch hier ist meine ApplicationDbContext Klasse:

public class ApplicationDbContext : IdentityDbContext<ApplicationUser> 
{ 
    public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options) 
     : base(options) 
    { 
    } 
} 

Ich bekomme auch den gleichen Fehler, wenn ich versuche, Client anstelle des Viewmodels zu verwenden.

Dinge, die ich bisher versucht habe:

  • eine andere DbContext Klasse erstellen, die von DbContext ableitet (Annahme hier war, dass IdentityDbContext könnte ein Problem haben)
  • hinzufügen Eigenschaft public DbSet<Client> Clients { get; set; }
  • Fügen Sie eine Eigenschaft public DbSet<ClientsOverviewViewModel> Clients { get; set; } (die nicht notwendig sein sollte, aber ich dachte, ich werde es versuchen)
  • Versuchen Sie eine andere Kombination von Vorlage und Modellklassen (neben Clien t und das Viewmodel), ohne Erfolg

Ich habe noch keine DB generiert, könnte das ein Problem sein? Ich verwende auch Entity Framework Kern in der Version 1.0.0-preview1-final

Was ich auch versucht habe: Ich habe eine TempDbContext die von DbContext ableitet und wollte nur hinzufügen die Ansicht mit Modellklasse Client und Datenkontextklasse TempDbContext. Dann bekomme ich die Fehler „Der Artikel angegeben ist nicht das Element einer Liste“

Leider konnte ich nicht alle Blog-Posts finden oder Fragen zu meinem Problem Stackoverflow.

+0

Warum wird die Antwort nicht akzeptiert? – Sergi0

Antwort

3

Ihre ViewModel-Klassen müssen einen Schlüssel enthalten. Eine Eigenschaft namens Id funktioniert gut.

+0

das war ein Problem in meinem Fall, ich hatte einen Tippfehler in Id Feldname – Sergi0

+2

Ich hatte ein ähnliches Problem, ich hatte eine 'öffentliche Uri Url {bekommen; einstellen; } 'in meinem ViewModel. Anscheinend wollte die Code-Generation keinen Uri-Typ haben.Die 'Code Generation Log' Ausgabe in Visual Studio hat mich in die allgemeine Richtung zeigen, nachdem ich Ihre Antwort gelesen habe, dass die ViewModel-Klasse Probleme haben könnte. – Wimpje

0

Das Problem, das ich hatte, war EF unterstützt Generic List (Liste) nicht. Sobald ich das geändert habe, konnte ich die Gerüstwerkzeuge verwenden.