Cod*_*ody 8 c# asp.net compiled-query 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
gow*_*nsg 16
错误消息表明CodySolutionEntities不是派生自ObjectContext,这是一个问题,因为CompiledQuery只能使用ObjectContext.在这种情况下,CodySolutionEntities必须从一个DbContext对象派生,该对象目前是推荐使用的上下文对象.  
这CompiledQuery可能在过去有效,因为4.1之前的Entity Framework版本创建了一个派生对象,ObjectContext而不是DbContext为您管理您的实体.  
就像这篇文章解释的那样,如果你能够以.NET 4.5为目标,那么你可以使用EF 5,而不再需要它CompiledQuery,因为它会自动为你编译LINQ to Entity查询.如果不是,您可能希望切换回使用ObjectContext,但在此之前确保您的思维模式不是简单编译或破坏.
| 归档时间: | 
 | 
| 查看次数: | 12837 次 | 
| 最近记录: |