使用浏览器中的URL获取数据时,可以看到相关数据,例如:
http://localhost/services.svc/Dinners(1)/RSVPs
在我的案例中,该列表列出了5个DinnerId = 1的RSVP,但是当我使用其他项目中的OData时,我只能检索Dinners,调试该应用程序会显示RSVP = 0,而应为5。
我通过向项目添加服务引用并通过非常简单的LINQ查询返回数据来使用服务:
public ActionResult Index()
{
var result = (from d in db.Dinners
select d);
return View(result);
}
知道为什么d.RSVPs = 0时应填充它吗?我正在使用EF(代码为先-后为ScottGu的帖子,针对Dinner和RSVP具有2个非常简单的POCO类。Dinner类具有RSVP的集合:
public ICollection<RSVP> RSVPs { get; set; }
,并且RSVP类使用外键public int DinnerId { get; set; }
指向Dinner以及晚餐类:public Dinner Dinner { get; set; }
。谢谢。
最佳答案
您需要使用Expand()来访问返回的对象图的多个级别。
Loading Deferred Content (WCF Data Services)
就像是:
var result = (from d in db.Dinners.Expand("RSVPs")
select d);
关于asp.net-mvc - OData WCF数据服务-调用服务时不显示相关数据(通过外键),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3672720/