1

Breeze EFContextProvider 似乎正在尝试使用 System.Data.Objects.ObjectContext,它显然已被移动(请参阅EF 6 System.Data.Objects.ObjectContext Error)。

有谁知道如何解决这个问题?

这是我从 Metadata 操作方法返回给浏览器的错误。

{
    * 
$id: "1",

    * 
$type: "System.Web.Http.HttpError, System.Web.Http",

    * 
Message: "An error has occurred.",

    * 
ExceptionMessage: "Method not found: 'System.Data.Objects.ObjectContext System.Data.Entity.Infrastructure.IObjectContextAdapter.get_ObjectContext()'.",

    * 
ExceptionType: "System.MissingMethodException",

    * 
StackTrace: " at Breeze.WebApi.EFContextProvider`1.GetCsdlFromDbContext(Object context) at Breeze.WebApi.EFContextProvider`1.BuildJsonMetadata() at Breeze.WebApi.ContextProvider.Metadata() at App.Spa.Controllers.BreezeController.Metadata() in ...filepath...\BreezeController.cs:line 23 at lambda_method(Closure , Object , Object[] ) at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.<>c__DisplayClass13.<GetExecutor>b__c(Object instance, Object[] methodParameters) at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.Execute(Object instance, Object[] arguments) at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.<>c__DisplayClass5.<ExecuteAsync>b__4() at System.Threading.Tasks.TaskHelpers.RunSynchronously[TResult](Func`1 func, CancellationToken cancellationToken)"


}
4

2 回答 2

2

EF 6 仍处于 Alpha 阶段。我们可能不会尝试为 Breeze 提供支持,直到它至少成为 Beta。但是您可以通过 Git 访问源代码,所以这个特定问题应该很容易通过根据您提到的帖子更改源代码来解决。

于 2013-05-17T17:20:16.760 回答
1

这是我尝试过的:

  1. 从github下载微风大师并解压,
  2. 使用 Visual Studio 2012 打开 Breeze.*.sln,使用 Nuget Manager 包更新 EF6(如果存在则删除旧 EF),
  3. 您将看到在微风主源中引用的一些 EF 命名空间被下划线标记为引用错误,要更正它们,请按照在

    http://entityframework.codeplex.com/wikipage?title=Updating%20Applications%20to%20use%20EF6

  4. 重建整个解决方案并创建新的 Breeze.WebApi.dll

  5. 打开您的项目并添加对该 Breeze.WebApi.dll 的引用

于 2013-06-24T00:32:27.293 回答