我正在使用带有EF DbContext的WCF Data Services 5.0。
我看到旧文章说你可以使用Expand和LoadProperty让WCF在一个请求中返回相关实体。
我在DbContext中看到的唯一等价物是Include,但这似乎不起作用。
使用DbContext时是否有任何方法可以加载所有相关记录?
我正在使用以下代码(一个CategoryGroup可以包含许多Category实体):
[WebGet]
public IQueryable<CategoryGroup> GetAllCategories(string activationCode)
{
try
{
var db = this.CurrentDataSource;
var licence = db.Licenses
.Include("Contact")
.FirstOrDefault();
if (licence != null)
{
var customerId = licence.Contact.CustomerId;
return db.CategoryGroups.Include("Categories").Where(r => r.CustomerId == customerId);
}
}
catch(Exception ex)
{
}
return new List<CategoryGroup>().AsQueryable();
}
此函数仅返回OData格式的CategoryGroup实体(没有相关的Category实体)。
答案 0 :(得分:1)
目前,WCF DS服务器无法自动扩展。因此,在上面的代码中包含Include对服务操作的响应没有影响。客户只能通过$ expand查询选项请求扩展。