WCF数据服务5.0 + DbContext:如何返回相关实体?

时间:2012-07-24 22:47:51

标签: wcf entity-framework entity-framework-4 wcf-data-services odata

我正在使用带有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实体)。

1 个答案:

答案 0 :(得分:1)

目前,WCF DS服务器无法自动扩展。因此,在上面的代码中包含Include对服务操作的响应没有影响。客户只能通过$ expand查询选项请求扩展。