在带有WHERE子句的Linq中使用SELECT AS

7

我正在尝试使用Linq查询来填充下拉列表。然而,我需要将名字和姓氏作为一个字段呈现。在DDL.DataTextField中进行拼接会导致无法找到该字段的错误。

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();
}
3个回答

17

如果你 只需要 全名,可以使用这个:

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

我们也可以使用(from c in db.mytable where c.ID_fk == p_ID select (c.FirstName + " " + c.Surname)).ToList(),对吗? - Amedio
1
@Amedio:是的,我想那也可以。不过大多数情况下,我更喜欢使用方法语法。我觉得更清晰明了。 - Daniel Hilgarth

2
你可以尝试这个:

你可以尝试这个:

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

那么你有一组字符串列表。


1

您可以尝试使用

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接