我创建一个委托来检索数据库中的所有专辑记录。我在另一个项目中使用了相同的方式,但由于某种原因,我这次得到一个错误。编译查询不隐式引用转换到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