我創建一個委託來檢索數據庫中的所有專輯記錄。我在另一個項目中使用了相同的方式,但由於某種原因,我這次得到一個錯誤。編譯查詢不隱式引用轉換到ObjectContext
我錯過了一步嗎?我不確定爲什麼會出現此錯誤。
代碼
public static readonly Func<CodySolutionEntities, IQueryable<Album>> SelectAlbums =
CompiledQuery.Compile<CodySolutionEntities, IQueryable<Album>>(
query => from q in query.Albums.Include("Photo")
select q);
錯誤
錯誤1類型 'CodyData.Diagram.CodySolutionEntities' 不能被用作類型parameter 'TArg0' in the generic type or method 'System.Data.Objects.CompiledQuery.Compile<TArg0,TResult>(System.Linq.Expressions.Expression<System.Func<TArg0,TResult>>)'. There is no implicit reference conversion from 'CodyData.Diagram.CodySolutionEntities' to 'System.Data.Objects.ObjectContext'. C:\Users\Cody\Documents\CMBS\CodySolution\CodyData\Delegates\PhotoDelegates.cs 13 13 CodyData
什麼是使用'DbContext'來做我想做的事情的等價方法呢? – Cody
這就是問題所在,你**不能**在'CompiledQuery'中使用'DbContext'。請參閱:http://stackoverflow.com/a/6731102/1289454。你可以堅持一個沒有編譯的查詢嗎? (var context = new CodySolutionEntities()){var albums = context.Albums.Include(a => a.Photos); // ...} – gowansg