无法从breeze获取元数据,发生错误

无法从breeze获取元数据,发生错误,breeze,Breeze,我正在尝试使用breeze开发某种计算器,以便在计算用户是否想要保存数据时,他/她可以将其保存到数据库中,并可以使用breeze webapi进行显示 使用敲除绑定从breeze获取数据的我的页面 <div id="calculatorList"> <table class="table table-striped"> <tbody data-bind="foreach: calculate"> <tr&g

我正在尝试使用breeze开发某种计算器,以便在计算用户是否想要保存数据时,他/她可以将其保存到数据库中,并可以使用breeze webapi进行显示

使用敲除绑定从breeze获取数据的我的页面

<div id="calculatorList">
    <table class="table table-striped">
        <tbody data-bind="foreach: calculate">
            <tr>
                <td data-bind="text: FirstNumber"></td>
                <td data-bind="text: Operator"></td>
                <td data-bind="text: SecondNumber"></td>
                <td data-bind="text: Output"></td>
                <td>
                    <button data-bind="click: editCalculate" class="btn btn-primary">Edit</button>
                </td>
                <td>
                    <button data-bind="click:deleteCalculate" class="btn btn-primary">Delete</button>
                </td>
            </tr>
        </tbody>
    </table>
</div>
我的DBCS上下文文件

public class ResultDbContext : DbContext
{
    public ResultDbContext() : base("DefaultConnection")
    {
            Database.SetInitializer<ResultDbContext>(null);
    }
    public DbSet<Result> Results { get; set; }
}
控制器

[BreezeController]
public class CalculatorController : ApiController
{
    readonly EFContextProvider<ResultDbContext> _cp = new EFContextProvider<ResultDbContext>();

    [HttpGet]
    public string Metadata()
    {
        return _cp.Metadata();
    }

    [HttpGet]
    public IQueryable database()
    {
        return _cp.Context.Results;
    }

    [HttpPost]
    public SaveResult SaveChanges(JObject saveBundle)
    {

        return _cp.SaveChanges(saveBundle);
    }
}
但我仍然得到以下错误

{"$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.GetMetadataFromDbContext(Object context)\r\n   at Breeze.WebApi.EFContextProvider`1.GetMetadataFromContext(Object context)\r\n   at Breeze.WebApi.EFContextProvider`1.BuildJsonMetadata()\r\n   at Breeze.WebApi.ContextProvider.Metadata()\r\n   at SpaCalculator.Controllers.CalculatorController.Metadata() in c:\\Users\\arajak\\Documents\\Visual Studio 2012\\Projects\\Calculator\\SpaCalculator\\Controllers\\CalculatorController.cs:line 22\r\n   at lambda_method(Closure , Object , Object[] )\r\n   at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.<>c__DisplayClass10.<GetExecutor>b__9(Object instance, Object[] methodParameters)\r\n   at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.Execute(Object instance, Object[] arguments)\r\n   at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ExecuteAsync(HttpControllerContext controllerContext, IDictionary`2 arguments, CancellationToken cancellationToken)\r\n--- End of stack trace from previous location where exception was thrown ---\r\n   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\r\n   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n   at System.Web.Http.Controllers.ApiControllerActionInvoker.<InvokeActionAsyncCore>d__0.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\r\n   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n   at System.Web.Http.Filters.ActionFilterAttribute.<CallOnActionExecutedAsync>d__5.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n   at System.Web.Http.Filters.ActionFilterAttribute.<CallOnActionExecutedAsync>d__5.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\r\n   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n   at System.Web.Http.Filters.ActionFilterAttribute.<ExecuteActionFilterAsyncCore>d__0.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\r\n   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n   at System.Web.Http.Controllers.ActionFilterResult.<ExecuteAsync>d__2.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\r\n   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n   at System.Web.Http.Dispatcher.HttpControllerDispatcher.<SendAsync>d__1.MoveNext()"}

任何人都可以说出发生此错误的原因

客户端不是问题所在。您有一个服务器错误。您似乎在System.Data.Entity.Infrastructure.IObjectContextAdapter.get_ObjectContext附近的某个地方发现了缺少的方法异常。这不是微风代码。开始调试服务器的时间。在服务器上编写一个测试或某种代码,向EFContextProvider请求元数据。炸弹在哪里?获取一个堆栈跟踪,有人无法读取一条长线。然后再报告,我们看看有什么问题。我和breeze有同样的问题。这是一个容易的问题,即完整的错误消息是隐藏的,您甚至不能在调试模式下单步执行。完全隐藏的秘密。《微风》的作者应该解决这个问题,因为一旦你被迫使用微风,它会引起头痛和工作场所的争论。太多的模棱两可会使编码人员蒙在鼓里。