2016-04-16 6 views
0

Ich möchte bestimmte Spalten wie Benutzername, Nachricht und Betreff nur aus SQL Server-Datenbank in Entity Framework in ASP.NET auswählen. Aber mein Programm gibt alle Spalten aus der Tabelle emailtable zurück.Wie wählen Sie bestimmte Spalten in Entity Framework in ASP.NET WebForms aus?

Hier ist mein Code:

kicsEntities db = new kicsEntities(); 

protected void Page_Load(object sender, EventArgs e) 
{ 
    emailtable et = new emailtable(); 

    string var = Session["username"].ToString(); 

    GridView1.DataSource = db.emailtables.Where(em => em.receiver == var).ToList(); 
    GridView1.DataBind(); 
} 
+0

Sie müssen eine ViewModel-Klasse mit gewünschten Eigenschaften erstellen und dann die Abfrage mit .Select fortsetzen (x => new Vm() {...}). ToList() –

Antwort

0

Sie konnten einen Blick auf Ihre Datenbank-Modell hinzufügen und haben sie enthalten nur die Spalten, die Sie abrufen wollen. Wenn Ihr Ansatz Code-first ist, können Sie die Ansicht hinzufügen/zuordnen, wie in this SO post beschrieben.

2

Sie können Projektion verwenden. Erstellen Sie beispielsweise ein Ansichtsmodell (C# class) namens MyClass, und deklarieren Sie die erforderlichen Eigenschaften aus dem Datenbankobjekt.

public class MyClass 
{ 
    public string Username { get; set; } 
    public string Message { get; set; } 
    public string Subject { get; set; } 
} 

mit Linq Jetzt können Sie nur die Eigenschaften fordern Sie von der Datenbanktabelle benötigen

db.TableName.Select(m => new MyClass 
{ 
    Username = m.Username, 
    Message = m.Message, 
    Subject = m.Subject 
}); 

Sie jetzt die zurückgegebene Sammlung als Datenquelle Ihre Gridview ist mit dem zusätzlichen Vorteil, dass eine Steuer stark typisierte binden kann .

Verwandte Themen