2017-05-05 3 views
3
public ActionResult Restaurants() 
     { 
      var restaurants = _context.ApplicationUsers.ToList(); 
      return View(restaurants); 
     } 

Ich möchte die Informationen der registrierten Benutzer von ASP.NET MVC extrahieren und auflisten. Aber wenn ich obigen Code ausgeführt habe, erhalte ich die Fehlermeldung:Wie kann ich die Daten registrierter Benutzer extrahieren?

Mehrere Objektgruppen pro Typ werden nicht unterstützt. Die Objektsätze 'ApplicationUsers' und 'Users' können beide Instanzen des Typs 'ESportsScreening.Models.ApplicationUser' enthalten.

Wie kann ich die Informationen von registrierten Benutzern in ASP.NET MVC 5 auflisten?

Antwort

2

ASP.NET erlaubt es nicht, 2 DbSet<T> im selben Kontext mit dem gleichen Entitätstyp zu haben. Die wahrscheinlichste Ursache dieses Fehlers initialisiert Ihre DbContext wie folgt aus:

public class ApplicationDbContext : IdentityDbContext<ApplicationUser> 
{ 
    public DbSet<ApplicationUser> ApplicationUsers { get; set; } 
} 

In dem obigen Code, ApplicationDbContext bereits ein DbSet vom Typ enthält ApplicationUser geerbt von IdentityDbContext<ApplicationUser> (die Sie durch _context.Users zugreifen). Durch das manuelle Hinzufügen einer zweiten DbSet<ApplicationUser> erstellen wir 2 Sätze mit demselben Entitätstyp. Löschen Sie die manuelle DbSet-Eigenschaft, und verwenden Sie stattdessen die geerbte Users-Gruppe.

+0

Es funktioniert! Danke Brett !! –

0

Der Fehler zeigt an, dass Sie zwei Objektgruppen vom gleichen Typ ESportsScreening.Models.ApplicationUser haben. Sie sollten eine davon entfernen, um diesen Fehler zu beheben. Sie sollten nur ein Objekt pro Typ festlegen und Sie brauchen nicht mehr.

Um Ihnen zu helfen, herauszufinden, wie Sie registrierte Benutzer finden können, müssen Sie einige Informationen darüber angeben, was Sie als registrierte Benutzer betrachten. Ich schätze, alle Benutzer, die Sie in Ihrer Datenbank haben, sind registrierte Benutzer. In diesem Fall reicht die folgende Codezeile aus:

var restaurants = _context.ApplicationUsers.ToList();

Im Fall, dass Sie die Benutzer filtern, können Sie die Wo-Extension-Methode wie folgt verwenden:

var Restaurants = _context.ApplicationUsers.Where (x => yourconditionhere) .ToList();

Verwandte Themen