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

急求。。Linq多表联合查询,Group By分组问题
我使用的Wcf RIA Silverlight,有两个数据表,siteInfo表(siteID,经度lon,纬度lat,siteName)和shopInfo表(shopID,siteID,date,earning),两个表通过siteID关联,我想实现这样的查询,例如:
siteInfo表
siteID  lon      lat    siteName
1       112.00   32.10   长沙
2       112.10   33.20    武汉

shopInfo表
shopID   siteID   date        earning
1          1      2012/1/2    1000
2          1      2012/1/2    2000 
3          1      2012/1/3    1500
1          2      2012/1/2    1200
2          2      2012/1/2    2200 
3          2      2012/1/3    1300

想得到的结果:
siteID     lon      lat    siteName    date      earning 
  1       112.00   32.10    长沙         2012/1/2   3000
  1       112.00   32.10    长沙         2012/1/3   1500
  2       112.10   33.20    武汉         2012/1/2    3400
  2       112.10   33.20    武汉         2012/1/3    1300

我是这样做的,我首先DomainService.metadata.cs自定义一个集合类    

  //自定义集合类    
    public class site_shopInfo
    {
        [DataMember]
        [Key]
        public int siteID  { get; set; }
        [DataMember]
        public decimal Latitude { get; set; }
        [DataMember]
        public decimal Longitude { get; set; }
        [DataMember]
        public DateTime  date {get;set;}
        [DataMember]
        public int Totalearning {get;set;}
}

然后在DomainService.cs里面定义查询方法
     public IQueryable<site_shopInfo> Getsite_shopInfo()
        {
       var query =from a in this.ObjectContext.siteInfo 
       join b in this.ObjectContext.shopInfo on a.siteID equals b.siteID