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

时间:2013-10-27 07:03:52

标签: c# linq asp.net-web-api odata breeze

我正在尝试使用带有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);

1 个答案:

答案 0 :(得分:0)

2013年10月28日更新:

截至目前,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。