サンプルの .NET WebApi アプリで Breeze.js フレームワークを試しています。私はいくつかのコントローラーをセットアップし、Unity.WebApi を使用してアプリの作業単位を挿入しました。
Entity Framework 6 を使用しているため、「Breeze Client and Server - 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()
このエラーをグーグルとスタックオーバーフローすると、さまざまな状況に関連する結果が得られるため、あまり役に立ちません。ただし、エラーは 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;
}
}