日期:2014-05-20  浏览次数:20926 次

用LINQ对两张表的复合查询
首先描述下已有表和问题:
有两张表,一张小区表 ResidentialAreas, 一张房源详细表 Properties, 已经用VS2008自带的linq to sql生成了dbml文件。 Properties.ResidentialAreaId 和 ResidentialAreas.Id与 关联。

现在想通过房源详细表 Properties的条件(比如,Properties.Price<=100 and Properties.Floor == 3)来查询获得以下内容:
1. 符合以上条件的小区名称ResidentialAreas.Name
2. 统计每个符合条件的小区内有几个符合条件的房源,并获得每个小区的房源ID (ResidentialAreas.Id)

先谢谢各位大哥帮忙~~

------解决方案--------------------
C# code


 public IQueryable<YRE_ResidentialAreas> Join()
        {
var p=from a in db.Properties 
      join b in db.ResidentialAreas 
      on a.ResidentialAreaId equals  b.Id 
      where a.Price <=100 && a.Floor == 3 
      select b; 

return p;
}


 public ActionResult Join()
        {
            var areas = Join().[b]Distinct();[/b][color=#FF0000][/color]
            
        }

------解决方案--------------------
public ActionResult Join()
{
var areas = rp.Join().Distinct();[b][/b]

}