在下面的Linq to Entities查询中,如果查询返回0 OfficeTelephone对象,则需要在返回值中的x.Number中放置一个默认值。我试过 x.Number ??“555-1212”,但是会引发错误。使用Linq to Entities查询中的默认值替换空值
from c in Contacts
.Where(a => a.LastName.Contains("ANDUS")).Take(10)
select new
{
Id = c.Id,
OfficeTelephone = c.Telephones.Where(a=>a.TelephoneType.Name.Contains("Office")).Select(x => new { x.AreaCode, x.Number, x.TelephoneType, x.Primary })
}
我已经试过类似:
from c in Contacts
.Where(a => a.LastName.Contains("ANDUS")).Take(10)
select new
{
Id = c.Id,
OfficeTelephone = c.Telephones
.Where(a=>a.TelephoneType.Name.Contains("Office"))
.Select(x => new { x.AreaCode, x.Number, x.TelephoneType, x.Primary })
.DefaultIfEmpty()}
但我不知道如何把一个默认的对象为DefaultIFEmpty()
如果查询返回0的对象,是从未使用过x.Number ......你想OfficeTelephone设为默认值? – Aducci 2014-10-10 16:12:20
是默认对象,区域代码,数字等缺省值。 – 2014-10-10 16:56:14