1
我想返回一個匿名類型,並且爲此我使用HttpResponseMessage,但結果是代碼406 Not Acceptable。這是我的代碼在OData中返回HttpResponseMessage行動
在WebApiConfig
modelBuilder.EntitySet<Groups>("Groups");
var getComplete = modelBuilder.Entity<Groups>().Collection.Action("GetComplete");
getComplete.Returns<HttpResponseMessage>();
在控制器
[HttpPost]
[Queryable]
public HttpResponseMessage GetComplete(ODataActionParameters parameters)
{
return this.Request.CreateResponse(HttpStatusCode.OK,db.Groups.Select(c => new
{
ID = c.ID,
DocumentType= c.DocumentType,
Name = c.Name ,
Debits = c.GroupMvtos.Sum(cm => cm.Debits) ?? 0,
Credits = c.GroupMvtos.Sum(cm => cm.Credits) ?? 0
}));
}
隨着ApiController爲使用基地班HTTPGET方法工作得很好,但在EntitySetController OData的行動沒有。
任何想法?
謝謝。
那麼我如何返回像ApiController中的匿名對象的集合 – Jhonattan
OData集合是同類和強類型的。所以,V3協議沒有辦法返回匿名對象。你能否聲明一個類型並使用它來代替匿名類型? –
我不能因爲我需要可查詢性。我想在IQueryable <'a>中使用$ filter,$ top等,並只對數據庫進行一次調用,並且不會將結果解析爲強類型。我想只喜歡ApiController中的httpget方法,你可以做到這一點。 – Jhonattan