为Linq中的列指定一个特定名称

时间:2011-10-18 10:27:45

标签: c# asp.net vb.net linq

我有以下查询,

var employees = from emp in this.DataWorkspace.v2oneboxData.me_employees
                where emp.me_is_deleted.Value == false && emp.me_is_manager == true
                select new{emp.me_first_name,emp.me_last_name,emp.me_pkey};

我想给emp.me_first_name列指定一个特定的名称,就像我们在SQL查询中那样:

select emp_first_Name as "First Name" from me_employees

如何在linq查询中执行此操作???

还可以在Linq的select查询中组合firstName和lastname吗?就像我们在SQL查询中所做的那样:

select me_first_name + ' ' + me_last_name as 'Full Name' from me_employee

我怎样才能在linq中完成这项任务?

由于

3 个答案:

答案 0 :(得分:6)

您无法将其设为First Name,因为它不是有效的标识符,但您可以使用:

select new { FirstName = emp.me_first_name,
             LastName = emp.me_last_name,
             Key = emp.me_pkey };

基本上,匿名类型中的属性名称​​默认为您使用的任何属性 - 您可以自己指定它,但它必须是有效的C#标识符。

或者组合:

select new { FullName = emp.me_first_name + " " + emp.me_last_name,
             Key = emp.me_pkey };

答案 1 :(得分:4)

var list = fro e in emp
           select new { FullName = e.Firstname + " " + e.LastName }

其中一个示例,但其中包含

enter image description here 请访问以下网址查看更多信息:Learn SQL to LINQ (Visual Representation)

答案 2 :(得分:2)

from emp in this.DataWorkspace.v2oneboxData.me_employees
where emp.me_is_deleted.Value == false && emp.me_is_manager == true
select new{FullName = String.Format("{0} {1}",emp.me_first_name, emp.me_last_name),emp.me_pkey};