OData查询为$ expand查询抛出错误

时间:2019-02-22 05:00:11

标签: asp.net-web-api odata

有两个表“任务”和“客户端”。这两个表都与ClientId(外键)相关。

在此查询中,我尝试使用$ expand关键字从Task表中获取基于ClientId的客户端名称。下面是查询和实体类。

OData查询:http://localhost:52484/Task?$ expand = Client($ select = Name)

 public class Task: GeneralTask
{
    public Task() { }

    public Task( 
        int clientId, 
        string title, 
       )
    { 
        this.Title = title;
        this.ClientId = clientId;
    }
}


 public abstract class GeneralTask
{
    protected GeneralTask()
    {
    }
    public string Title { get; set; }

    public int ClientId { get; set; }
    public virtual  Client Client { get; set; }

}

但是我收到以下错误。

错误消息:“ URI中指定的查询无效。$ expand查询选项中不能使用属性'Client'。”

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

我们需要启用OData模型绑定属性,您可以在以下代码块(WebApiConfig.cs文件)的中间行全局进行操作

ODataModelBuilder builder = new ODataConventionModelBuilder();
config.Count().Filter().OrderBy().Expand().Select().MaxTop(null); //new line
builder.EntitySet<DB.Project>("Projects");