从 wpiAPI 获取无效的强制转换异常

本文关键字:转换 异常 wpiAPI 获取 无效 | 更新日期: 2023-09-27 18:37:03

我正在尝试使用 breeze 和 angular 与 WebAPI 构建一个演示应用程序。我在使用 .select('properties') 方法的微风向 WebApi 发出请求时面临异常。

return EntityQuery.from('Sessions').select('id,title,code,speakerId,trackId,timeSlotId,roomId,level,tags').orderBy(orderBy).toType('Session').using(manager).execute().to$q(success, queryfailed);

异常消息:"无法将类型为'System.Data.Entity.Infrastructure.DbQuery 1[System.Web.Http.OData.Query.Expressions.SelectExpandBinder+SelectSome 1[AngularBreezeSpa.Models.Session]]的对象转换为类型'System.Linq.IQueryable'1[AngularBreezeSpa.Models.Session]'。

ExceptionType: "System.InvalidCastException",

但是如果我不使用 select(),那么一切正常。

return EntityQuery.from('Sessions').orderBy(orderBy).toType('Session').using(manager).execute().to$q(success, queryfailed);

从 wpiAPI 获取无效的强制转换异常

更新 10/28/2013:

截至目前,Breeze 1.4.5支持Microsoft的 ASP.NET WebApi 2和Entity Framework 6。请参阅 http://www.breezejs.com/documentation/download。

旧帖子...

此错误是由于Microsoft对WebApi(新版本称为WebApi 2)和实体框架(EF5 -> EF6)的更改。

我们将在本周晚些时候发布对 WebApi2 和实体框架 6 的 Breeze支持。

目前,这有点痛苦,但是在VS 2013上安装Breeze之前,您需要手动安装较旧(v 4.x)版本的"Microsoft.AspNet.WebApi.xxx"包和较旧的实体框架v5(不是v6)。