2012-03-26 6 views
0

zurückzukehren Wie mein LINQ Abfrageergebnis als ein bestimmtes Objekt zurückWie mein LINQ Abfrageergebnis als ein bestimmtes Objekt

public CountryTable GetSelectedEventInfo(string SelectedEventID) 
{ 
    return (CountryTable) this.context.Event.Where(
        e => e.EventID.Equals(Convert.ToInt32(SelectedEventID))); 
} 

Hier ist mein Modell

public class CountryTable 
{ 
    public int EventID { get; set; } 
    public string Title { get; set; } 
    public DateTime Startdate { get; set; } 
    public DateTime EndDate { get; set; } 
    public string EventUrl { get; set; } 
} 

Unten ist mein db Kontext

Unten ist was ich versuche zu tun

public CountryTable GetSelectedEventInfo(string SelectedEventID) 
{ 
    return (CountryTable) this.context.Event.Where(
        e => e.EventID.Equals(Convert.ToInt32(SelectedEventID))); 
} 

Ich brauche mein Abfrageergebnis Objekt vom Typ CountryTable zurückzukehren

Antwort

5

Sie die SingleOrDefault Methode verwenden:

public CountryTable GetSelectedEventInfo(string SelectedEventID) 
{ 
    int id = Convert.ToInt32(SelectedEventID); 
    return this.context.Event.SingleOrDefault(e => e.EventID == id); 
} 

Beachten Sie, dass diese Methode null zurück, wenn kein passender Datensatz in Ihrer Datenbank gefunden .

+0

Wenn es eine eindeutige ID ist, verwende ich lieber SingleOrDefault, oder würden Sie vorschlagen, immer noch FirstOrDefault zu verwenden? Ich weiß, das Ergebnis ist das gleiche für eine eindeutige ID, aber ich bin nur neugierig auf gute Praxis. – Silvermind

+0

Verwenden Sie SingleOrDefault - der Semantikstatus, in dem genau ein Datensatz abgefragt und zurückgegeben werden soll. Zuerst kann> 1 abfragen und du sagst "Ich will nur das erste Ergebnis" –

+0

Gute Punkte. Ich habe meine Antwort aktualisiert, um SingleOrDefault zu verwenden, um eindeutige Datensätze sicherzustellen. –

Verwandte Themen