2016-09-01 4 views
2

ich Entity Framework ziemlich neu bin, und ich bin mit dieser Methode, um durch meine Datenbank abzufragen:Entity Framework hinzufügen lokale Daten aus der Datenbank zur Liste

var _context = new StudioEntities(); 
var results = _context.tblStudios.Select(u => new 
{ 
    u.Standort, 
    u.Name, 
    u.Id 
}).ToList(); 

Jetzt ist mein Ziel als auch lokale Daten hinzuzufügen ist das ist nicht in der Datenbank vorhanden. Ich habe es mit diesem Code versucht, aber es hat nicht funktioniert:

results.Add(new tblStudio { Id = 0, Name = "Gesamt" }); 

Kann mir jemand dabei helfen? Dank

bearbeiten:

Meine Tabelle Klasse sieht wie folgt aus:

public partial class tblStudio 
{ 
    public int Id { get; set; } 
    public string Name { get; set; } 
    public string Standort { get; set; } 
    public Nullable<int> Plz { get; set; } 
} 
+0

Sie die Add gegen die Ergebnisse der Durchführung Objekt, das nur eine Liste ist , nicht auf eine Datenbank gebunden. Nehmen Sie die Änderungen am Objekt _context vor, nicht am Objekt "results" ... und rufen Sie dann SaveChanges() auf, um die Bits aus der Tür zum DB zu schieben. –

+0

Möchten Sie neue Daten in der Datenbank hinzufügen oder nur neue Daten zu der Liste hinzufügen, die von der Datenbank abgerufen wurde? – kapantzak

Antwort

5

Die result ist kein List von tblStudios, ist es eine List von Anonymous Type. Also, wenn Sie ein Element in der hinzufügen result Sie sollte wie folgt tun:

var results = _context.tblStudios.Select(u => new tblStudiosDTO() 
{ 
    Standort = u.Standort, 
    Name = u.Name, 
    Id = u.Id 
}).ToList(); 

results.Add(new tblStudiosDTO() { Id = "0", Name = "Gesamt" }); 

Aber weil Sie nicht auf einem zugeordneten Entität projizieren können, dann müssen Sie von der tblStudios Unternehmen eine DTO Klasse wie tblStudiosDTO mit den benötigten Eigenschaften schaffen .

public class tblStudiosDTO 
{ 
    public string Standort { get; set; } 
    public string Name { get; set; } 
    public string Id { get; set; } 
} 
+0

Danke Mann, aber dies gibt mir eine Fehlermeldung "Die Entität kann nicht in einer LINQ to Entities-Abfrage erstellt werden". Weißt du, wie man es löst? – Anokrize

+0

@Anokrize Weil Sie nicht auf eine zugeordnete Entität projizieren können. Sie können eine DTO-Klasse wie 'tblStudiosDTO' mit den gleichen Eigenschaften wie' tblStudios' erstellen. –

+0

Ich habe meine Tabellenklasse in meine Bearbeitung aufgenommen. Warum kann ich diesen Kurs nicht verwenden? – Anokrize

Verwandte Themen