我創建了一個新的MVC4 web api項目來通過HTTP公開實體。因爲我想查詢對數據庫中執行,而不是在內存中我啓用了查詢支持WebAPI + IQueryable中的System.ArgumentOutOfRangeException
public static void Register(HttpConfiguration config)
{
config.EnableQuerySupport();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
這裏是我的IQueryable。我正在使用Repository模式來使用NHibernate檢索數據。
public class TradeViewController : ApiController
{
public IQueryable<TradeView> Get()
{
return new TradeViewRepository().GetQueryable();
}
}
當我嘗試測試控制器我得到以下異常
System.ArgumentOutOfRangeException:索引超出範圍。必須是非負數且小於集合的大小。 參數名:指數
這裏是我的測試
public void Get()
{
TradeViewController controller = new TradeViewController();
// Act
var result = controller.Get();
var count = result.Take<TradeView>(10).Count();
Assert.AreEqual(10, count);
}
而且一般情況是有可能使用LINQ查詢針對的WebAPI控制器?
感謝
什麼'索引'是指的錯誤?你確定這個版本庫沒有問題嗎? – cDima 2014-10-16 20:09:37
你確定你實際上有10條記錄嗎? – 2014-10-16 20:10:54
是知識庫返回記錄正確,並且表中有超過一百萬條記錄,所以這應該不成問題。 – Parvez 2014-10-16 20:15:01