2012-09-25 23 views
7

我正在嘗試使用Linq查詢填充下拉列表。但是,我需要將FirstName和Surname作爲一個字段。在DDL.DataTextField中連接會返回字段未找到錯誤。在Linq中使用WHERE子句選擇AS

SQL會是這樣的:

SELECT (FirstName + SPACE + Surname) AS FullName FROM Table WHERE ID=1 

當前的Linq:

public IList<mytable> GetNames(int p_ID) 
{ 
    return db.mytable.Where(c => c.ID_fk == p_ID).ToList(); 
} 

回答

12

您可以使用此,如果您需要全名:

public IList<string> GetNames(int p_ID) 
{ 
    return db.mytable.Where(c => c.ID_fk == p_ID) 
        .Select(x => x.FirstName + " " + x.Surname) 
        .ToList(); 
} 
+0

我們可以使用'(嘗試從C(c.FirstName +「」+ c.Surname))。ToList()'也是,不是嗎? – Amedio

+1

@Amedio:是的,我想這也可以。不過,我更喜歡大多數情況下的方法語法。我發現它更清晰。 –

2

你可以試試這個:

return db.mytable.Where(c => c.ID_fk == p_ID).Select(c=>c.FirstName + " " + c.Surname). ToList(); 

,所以你有一個字符串

1

的列表,您可以在這裏db.mytable == c.ID_fk選擇的p_id與

return db.mytable.Where(a => a.ID_fk==p_ID) 
        .Select(a => a.FirstName + "-" + a.Surname) 
        .ToList();