0
我創建了一個實體框架API控制器,現在我想從調整我的GetData()方法:不能鍵入「System.Data.Entity.Infrastructure.DbSqlQuery」隱式轉換爲「System.Linq.IQueryable」
public IQueryable<VIPPreviewTimeSlots> GetData()
{
return db.Data;
}
到
public IQueryable<VIPPreviewTimeSlots> GetData()
{
return db.Data.SqlQuery("SELECT a,b,c FROM table INNER JOIN another table....");
}
,但我得到這個錯誤:
Cannot implicitly convert type 'System.Data.Entity.Infrastructure.DbSqlQuery’ to 'System.Linq.IQueryable’
如何施放此爲IQueryab樂?
我想通過添加.AsQueryable()到您的返回語句的結尾將工作。但是,根據[這個SO問題](http://stackoverflow.com/questions/26143571/using-sqlquery-to-get-iqueryable),你不能。您可以更改函數簽名以返回IEnumerable –
.AsQueryable()工作! – user979331
@PaulStoner那麼這個答案就是關於在'.SqlQuery'上調用'.AsQueryable'。將函數簽名更改爲IEnumerable將導致它不再能夠延遲鏈接。之後的一切都將在客戶端完成,而不是在服務器端完成。 '.AsQueryable'在這裏是正確的答案(它實際上也會是你的鏈接問題的正確答案,但它可能會影響'.SqlQuery',在這裏它不會。 –