2017-10-02 4 views
-2

Ich habe in meiner ASP.NET Core 2.0 App in der DBContext-Klasse folgenden Code. DbContextDbContext onModelErstellen von Filterdaten

public DbSet<MyTable> MyTable1 { get; set; } 
... 
protected override void OnModelCreating(ModelBuilder modelBuilder) { 
    modelBuilder.Entity<MyTable>().ToTable("MyTable"); 

ist es die .totable immer korrigieren Sie den gesamten Inhalt der Tabelle bekommen? Ich brauche nur bestimmte Daten (Filter). Zum Beispiel bekommen Projekte aus der Tabelle Projekt die Mitarbeiter ID = 4. Die Mitarbeiter ID habe ich aber nach erfolgreichem Login. Wie bekomme ich die Daten jetzt in meiner Controller-Klasse?

+1

Sie müssen einen Schritt zurückgehen und erneut lesen, wie EF6 funktioniert. Befolgen Sie einige Tutorials, machen Sie einen Kurs auf Plural, etwas ähnliches. Sie müssen zuerst einige der * Grundlagen * verstehen. – Igor

Antwort

0

ToTable bildet das Objekt einfach auf die Tabelle ab. Solange Sie keine Daten mit einer linq-Anweisung anfordern, wird nichts unternommen. Wenn Sie ToList für die where-Klausel aufrufen, greift EF auf die Datenbank zu und fragt nur die gewünschten Ergebnisse ab.

Alles, was tut, ist, dass MyTable auf MyTable in Sql verweist. Nichts mehr.

Wenn Sie speziell das gesamte Ergebnis fest eingestellt filtern Sie so mit Eneity.HasQueryFilter tun können (y => y.ID == 4);

0

Ich habe in meiner Controller-Klasse den folgenden Code. var Kontext = _Kontext;

  var mobil_table1 = from s in context.MyTable 
              where s.Number == "4711" 
              orderby s.Name 
              select s; 

Aber ich habe in context.MyTable die ganzen 1000 Datensätze, die in der Tabelle vorhanden sind. Nach dem Filtern der Datensätze habe ich in mobil_table1 20 Datensätze. das habe ich mit meiner einleitenden Frage versucht, um zu klären, dass ich immer alle Datensätze auf App laden starte. Diese sind immer in Context.Table alle vorhanden. Aber normalerweise lade ich mit herkömmlichen SQL-Abfragen, damit ich immer nur die Datensätze habe, die ich wirklich nur will. Wie hat das mit Entity Framework funktioniert?