求教高手,Silverlight RIA Service 数据表关联自定义类及查询问题?
数据库中有两个表,一个地点表Site(字段有SiteID,Longitude,Latitude,Height,SiteName),一个调查表Survey(字段有SurveyID,SiteID,Time,Num),然后生成实体模型,建立DomainService服务类,我是在DomainService.metadata中自定义了一个非实体类
[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中自定义一个查询方法
[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;
}
我是在想在地图上通过经纬度打点,在相应的地点上得到相关的调查数据,如Num等,而在客户端异步调用Domain服务提供的GetGetSite_SurveyInfoQuery查询服务时,在地图上无法显示地点也得不到任何数据,(而通过访问单个Site实体在Domain服务中自动生成GetSiteQuery的查询结果,却可以再地图上正常显示地点)这是为什么?请高手指教。感谢灰常啊! silverlight service domain query
[解决办法]
没看懂,在创建图层的时候,加一些你需要的属性 试试看
[解决办法]
IQueryable<Site_SurveyInfo> 是表达式树,而不是数据本身,你序列化表达式树传到sl端当然不会有数据。
public IEnumerable<Site_SurveyInfo> GetSite_SurveyInfo()
{
。。。。。。。。。
return query.ToArray();
}
改成这样,传递数据本身即可。