从 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);
更新 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)。