如何使用Linq To SQL显示所有记录?

时间:2011-06-26 16:13:30

标签: c# linq-to-sql

我有2个表可以加入查询,如下所示:

var query = (from c in Amenites_TBLs
                 join p in AmenitesContact_TBLs on c.AmenitesCodeID
                 equals p.AmenitesCodeID
                 // group c by p.AmenitesCodeID
                 into g
                 from cc in g.DefaultIfEmpty()
                 select new
                 {
                     AmenitiesCode = Amenites_TBLs.SingleOrDefault(a => a.AmenitesCodeID == cc.AmenitesCodeID).AmenitesCode,
                     CountryCode = Amenites_TBLs.SingleOrDefault(a => a.AmenitesCodeID == cc.AmenitesCodeID).CountryCode,
                     Director = AmenitesContact_TBLs.Where(a => a.TypeOfContact.StartsWith("Dir")).FirstOrDefault(a => a.AmenitesCodeID == cc.AmenitesCodeID).ContactName});

在表AmenitesContact_TBLs中,只有3条记录。在表Amenites_TBLs中有300条记录,但查询结果仅提供3条记录,其他297条行为空,但字段AmenitiesCodeCountryCode在数据库中不为空(他们得到了一个价值。)

如何修改查询以显示所有300条记录?

1 个答案:

答案 0 :(得分:0)

试试这个:

Amenites_TBLs.Join(AmenitesContact_TBLs , c => c.AmenitesCodeID , p => p.AmenitesCodeID,(p,o) =>
new{ AmenitiesCode = c.AmenitesCode,CountryCode = c.CountryCode,Director = p.Where(a => a.TypeOfContact.StartsWith("Dir")).ContactName });