如何将linq中的两列连接到sql查询选择投影

时间:2013-03-28 13:41:08

标签: c# linq linq-to-sql

1-我使用linq to sql来查询数据库表。
2-在我的实际表中,我将电话国家代码,电话号码和电话分机存储在不同的列中。
3-当我得到数据时,我需要Phone等于电话国家代码,电话号码和电话分机的串联。
4-对于某些记录,这3列中的任何一列都可能具有空值。
5-如果一列为空,则整个连接产生空值。

from s in test
select new{
          Phone = s.PhoneCountryCode + s.PhoneNumber + s.PhoneExtension
}

6-我尝试了以下方法,但没有奏效。仍然产生无效。

from s in test
select new{
          Phone = s.PhoneCountryCode == null ? "" : s.PhoneCountryCode + s.PhoneNumber       == null ? "" : s.PhoneNumber + s.PhoneExtension == null ? "" : s.PhoneExtension
} 

1 个答案:

答案 0 :(得分:5)

您可以按如下方式使用??运算符:

from s in test
select new
{
    Phone = (s.PhoneCountryCode ?? "") + (s.PhoneNumber ?? "") + (s.PhoneExtension ?? "")
}