问题:在Domain Service中使用EF 4 实现如下数据访问,通过Include语句获得Job所关联的Vehicle实体
public Iqueryable<Job> GetRunsByVehicleDate(int vehicleID,DateTime date)
{
date = date.Date;
DateTime dateNext = date.AddDays(1);
var result = this.ObjectContext.Jobs.Include("Vehicle").Include("Location").Include("TimeSlot")
.Where(j => j.JobDate >= date && j.JobDate <= dateNext && j.VehicleID == vehicleID)
.OrderBy(j => j.JobDate);
return result;
}
然而在Silverlight端,job.Vehicle 得到的却是null
原因:RIA没有将关联实体在客户端代码上正确生成
解决:使用Include 属性并修饰Job实体如下,
[MetadataType(typeof(JobMetaData))]
partial class Job : IEntity
{
public class JobMetaData
{
[Include]
public Vehicle Vehicle { get; set; }
[Include]
public Location Location { get; set; }
}
}
注意:Include来自 System.ServiceModel.domainservices.Server.dll at path like
C:/Program files (x86)/Microsoft SDKs/RIA Services/v1.0/librarIEs/Server
问题描述: 数据库中已经设置好表的外键关系,用ado.net实体数据模型映射数据库,在Silverlight客户端始终无法访问到外键信息(返回null)
解决办法: 1.在由EF生成的XX.Designer.cs代码中,添加[Include]特性到外键属性上 2.在域服务类中,在GetXX()方法中读取外键,例如 public Iqueryable<Coupon> GetCoupon() |
以上是内存溢出为你收集整理的RIA Service 的外键问题搜集全部内容,希望文章能够帮你解决RIA Service 的外键问题搜集所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)