2012-03-26 28 views
0

如何返回我的LINQ查詢結果作爲特定對象如何返回我的LINQ查詢結果作爲特定對象

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

這裏是我的模型

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; } 
} 

下面是我的分貝範圍內

public DbSet<CountryTable> Event { get; set; } 

以下給出的是我正在嘗試做的事

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

我需要我的查詢結果返回類型CountryTable的對象

回答

5

你可以使用SingleOrDefault方法:

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

注意,此方法將返回null如果沒有匹配的記錄在數據庫中找到。

+0

如果它是一個唯一的ID,我寧願使用SingleOrDefault,或者你會建議仍然使用FirstOrDefault?我知道結果對於一個獨特的id是一樣的,但我只是對好的練習感到好奇。 – Silvermind 2012-03-26 15:54:57

+0

使用SingleOrDefault - 語義狀態正好你想要查詢一個記錄並返回。首先可以查詢> 1,你說「我只想要結果的第一個」 – 2012-03-26 16:04:15

+0

好點。我更新了我的答案以使用SingleOrDefault來確保唯一的記錄。 – 2012-03-26 16:31:08