2013-07-23 110 views
1

我使用以下两个LINQ查询:LINQ查询示出不同的结果

查询1

var membersAddresses = 
    (from o in db.MembersAddresses.Include(m => m.Member) 
       .Where(id => id.MemberID == memberID) 
    select new { 
     memberID = memberID, 
     Address = o.AddressName + ":" + o.Address1 
    }).ToList(); 

查询2

var membersAddresses1 = 
    (from o in db.MembersAddresses.Include(m => m.Member) 
       .Where(id => id.MemberID == memberID) 
    select o).ToList(); 

有抵靠件2点的地址。底部的查询返回正确的结果,而上面的查询则显示第二个值为空。任何想法如何纠正该查询?我想使用第一个查询,因为我需要使用一些自定义列。

感谢

+2

只是有趣的 - 为什么你命名成员地址变量'id'? –

+0

你可以从LinqPad查看IL查询http://www.linqpad.net/ – WhileTrueSleep

+1

你试过了吗:memberID = memberID => memberID = o.memberID – Peter

回答

0

可以使用运营商??

Address = (o.AddressName ?? "") + ":" + (o.Address1 ?? "") 

A '?' B意思是,如果A为空,那么就拿B取其他A取