我正在一个示例 .NET WebApi 应用程序中试用 Breeze.js 框架。我有几个控制器设置工作并使用 Unity.WebApi 注入应用程序的工作单元。
我正在使用 Entity Framework 6,所以我使用“Breeze 客户端和服务器 - 带有 ASP.NET Web API 2 和 Entity Framework 6 的 Javascript 客户端”包(id:Breeze.WebApi2.EF6)安装了 Breeze。之后我添加了 BreezeController,但现在我的应用程序中断了,出现以下错误:
Could not load file or assembly 'System.Web.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
源错误:
Line 15: GlobalConfiguration.Configuration.DependencyResolver =
Line 16: new UnityDependencyResolver(container);
Line 17: }
Line 18:
Line 19: private static IUnityContainer BuildUnityContainer()
谷歌搜索和 StackOverflowing 这个错误会产生与不同情况相关的结果,所以对那些没有太大帮助的地方。但是错误来自 Unity 的 Bootstrapper 文件,所以我删除了 Unity,然后我的 Breeze 控制器开始工作。把 Unity 放回去——它又坏了
微风控制器:
public class BreezeController : ApiController
{
readonly EFContextProvider<DataContext> _contextProvider =
new EFContextProvider<DataContext>();
[HttpGet]
public string Metadata()
{
return _contextProvider.Metadata();
}
[HttpGet]
public IQueryable<Category> Categories()
{
return _contextProvider.Context.Categories;
}
}