WCF RIA Service 的表关联问题,请教大家!
我的数据库中有两个表,一个地点表Site(字段有SiteID,Longitude,Latitude,Height,SiteName),一个调查表Survey(字段有SurveyID,SiteID,Time,Num),然后添加实体数据模型,生成新的域服务类Domain,我想在Domain.metadata.cs文件中通过自定义一个Site_SurveyInfo类,来筛选存储Site表和Survey表联合查询字段值,添加Site_SurveyInfo类定义为:
using System.Runtime.Serialization;
[DataContract]
public class Site_SurveyInfo {
[DataMember]
[Key]
public int siteID { get; set; }
[DataMember]
public decimal latitude { get; set; }
[DataMember]
public decimal longitude { get; set; }
[DataMember]
public float height {get;set;}
[DataMember]
public string siteName { get; set; }
[DataMember]
public DateTime time { get; set; }
[DataMember]
public int num { get; set; }
}
然后在DomainService.cs中使用这个类,并添加一个自定义函数
[Query]
public IQueryable<Site_SurveyInfo> GetSite_SurveyInfo()
{
IQueryable<Site_SurveyInfo> query = from a in this.ObjectContext.Site join b in this.ObjectContext.Survey on a.SiteID equals b.SiteID
select new Site_SurveyInfo
{
siteID=a.SiteID,
longitude = a.Longitude,
latitude = a.Latitude,
height=a.Height,
siteName = a.SiteName,
num = b.Num,
time =b.Time
};
return query;
}
但是查询时,却得不到数据,这到底是哪里出问题了? service wcf ria
[解决办法]
IQueryable<Site_SurveyInfo> 是表达式树,而不是数据本身。
public IEnumerable<Site_SurveyInfo> GetSite_SurveyInfo()
{
。。。。。。。。。
return query.ToArray();
}
改成这样。