4

複数の EF モデルに対して複数の Api コントローラーを使用するソリューションで、Breeze.js のサーバー側コンポーネントを使用しようとした人はいますか?

1 つのコンテキストで MetaData エンドポイントを呼び出した後、他のコンテキストで MetaData エンドポイントを呼び出すと、最初に呼び出されたコンテキストから MetaData が返されることがわかりました。たとえば、2 つの Api コントローラーがあり、それぞれに独自の MetaData エンドポイントがあるとします。

public class CoreController : ApiController
{
    readonly EFContextProvider<CoreEntities> contextProvider = new EFContextProvider<CoreEntities>();
}

public class FormsController : ApiController
{
    readonly EFContextProvider<FormsEntities> contextProvider = new EFContextProvider<FormsEntities>();
}

~/Core/MetaData を呼び出すと Core モデルの JSON が返されますが、その後 ~/Forms/MetaData を呼び出すと Forms JSON は返されず、代わりに Core メタデータが返されます。それらを逆に呼び出すと、フォームのメタデータが両方とも取得されます。この問題は、ホスト プロセスがリサイクルされるまで続くようです。

期待どおりに両方のモデルからオブジェクト データにアクセスできることを確認できたので、これがルーティングの問題であるとは思えません。

無効にする必要があるキャッシュがどこかで実行されているかどうか、誰かが教えてくれるでしょうか?

よろしく、

トム・トレジェンナ

4

3 に答える 3

2

OK、これは Breeze 0.73.4 で修正されるはずです。これは、breeze Web サイトで nuget または zip を介して入手できます。

于 2012-11-26T18:08:00.433 に答える
1

あなたが正しいです。この問題をテストしたところ、報告されたこの動作が発生しました。2 つのコントローラーの各メソッドにブレークポイントを設定し、 Fiddler を使用して、これはルーティングの問題ではないMetadata()と結論付けました。2 つのコントローラーは異なる Context (のプロパティ) を使用していますが、最初に呼び出されたメタデータが常に返されます。これは Breeze のライブラリの問題だと思います。Breeze のドキュメントを読みましたが、役立つ情報は見つかりませんでした。contextProvider

于 2012-11-24T17:53:51.267 に答える