我正在尝试使用带有WebApi的breeze和angular来构建一个演示应用程序。我在使用breeze和.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);
ExceptionMessage:“无法转换类型为'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);
答案 0 :(得分:0)
截至目前,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和Entity Framework 6的Breeze支持。
目前,它有点痛苦,但您需要手动安装旧版(v 4.x)版本的“Microsoft.AspNet.WebApi.xxx”软件包和旧版Entity Framework v5(不是v6)在VS 2013上安装Breeze。