我正在研究在WebApi中使用odata。到目前爲止這麼好,我喜歡那種更加靈活的wcf數據服務。WebApi OData實體集/鍵/導航/鍵支持
但是,當我嘗試在模型中使用虛擬IQueryable屬性時遇到問題。
因此,例如,我有這些模型類:
public class MainItem
{
public int Id { get; set;}
public virtual IEnumerable<SubItem> SubItems { get; set;}
}
而且我MainItemsController看起來像這樣
public class MainItemsController : EntitySetController<MainItem, int>
{
[Queryable]
public override IQueryable<MainItem> Get()
{
return SomeMainItemIQueryable();
}
public override GetEntityByKey(int key)
{
return SingleMainItem(key);
}
[Queryable]
public IQueryable GetSubItems(int key)
{
return SomeSubItemIQueryable(SingleMainItem(key));
}
}
我得到以下網址的正確的結果: /的OData/MainItems /OData的/ MainItems(1) /odata/MainItems(1)/ SubItems
但是,當我嘗試做 /的OData/MainItems(1)/子項(1)
我得到這個錯誤 此服務不支持的格式 '〜/ EntitySet的/鍵/導航/鍵'
我會的OData請求喜歡將此調用重定向到/ odata/MainItems(1)/ SubItems到SubItemsController。
我可以通過製作一個自定義的ODataPathHandler來做到這一點,但是這並不像這樣做的正確方式。
非常感謝! – Rolfvm