問題タブ [asp.net-web-api-odata]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
2617 参照

asp.net-web-api - 常に単一のエンティティを返すメソッドの odata Web API ルートを構成する方法

常に単一のエンティティを返すルートを構成したいと考えています。

コントローラーは次のようになります。

class StatsController: ODataController { public Stats Get() { return new Stats(); } } アクセスするための URL は次のとおりです: GET ~/service-prefix/stats

私が見たすべてのオプションには、IQueryable を返す必要があるか、単一のエンティティを返すときに ~/service-prefix/EntitySet(1) の形式でキーを渡すことが含まれます。

IQueriable を返すことなく上記を達成する方法はありますか?

0 投票する
1 に答える
1338 参照

entity-framework - EntityFramework Model-breastjs の最初のメタデータ

Breeze.js ライブラリには、エンティティ コンテキストのメタデータが必要です。Web API OData には、この操作用のデフォルトの ODataConventionModelBuilder がありますが、外部キー情報がないため、Breeze では機能しません。したがって、Breeze は、この情報を生成するために「EdmBuilder」と呼ばれる特別なパッケージを提供しています。ただし、Code-First アプローチでのみ機能します。既存の edmx ファイルがある場合、次の例外が発生します。

DbModelBuilder の作成、または Database First または Model First を使用して作成された DbContext からの EDMX の書き込みはサポートされていません。EDMX は、既存の DbCompiledModel を使用せずに作成された Code First DbContext からのみ取得できます。

要するに、プロジェクト内に既存のedmxファイルが存在する場合、それをメタデータ情報としてbreezejsに公開するにはどうすればよいのでしょうか?

0 投票する
1 に答える
855 参照

entity-framework - Breeze EdmBuilder 使用時に EntitySet を追加する方法

最終編集:検索している他の人のために、ここで答えを一番上に置きます。主な問題は、db-first で生成された EDM がモデルの名前空間の末尾に「.Models」をアタッチすることによって発生した名前空間の不一致でした。この名前空間は odata 名前空間と一致しなかったため、ルートは失敗していました。名前空間から「.Models」のすべての出現を編集したところ、今では機能しています。


webApiOdata をセットアップして Breeze を試す初心者。この質問が些細なことでしたら申し訳ありません。

webapi odata コントローラーを使用して db で生成された edmx モデルがあります。新しい Breeze EdmBuilder について読むまで、正しいメタデータを表示するのに問題がありました。

これにより、正しいメタデータを表示するという問題は解決しましたが、現在、どのテーブルにもルーティングできません。/odata/Customers を試すと、406 エラーが発生します。

以前は、ODataConventionModelBuilder を使用して EntitySets を設定していましたが、問題なく動作していました。

EdmBuilder を使用しているので、適切なデータにルーティングできるように EntitySets を設定するにはどうすればよいですか?

質問が理にかなっていることを願っています。

*編集: GCSodContext のリストと Customers コントローラーのスニペットを追加しました。

ここにCustomersコントローラーがあります

これが Customer クラスです。

0 投票する
1 に答える
447 参照

asp.net-web-api - 複合キーを使用した WebApi EntitySetController

優れたサンプル コード: ASP.NET Web API OData での複合キーのサポートは、 ルーティング規則を作成して WebApi OData を複合キーで動作させる方法を示しています。

ただし、ODataController を使用しています (サンプル コードに関する未回答の議論の 1 つとして言及されています)。これには多くの欠点があると思います (まだ完全には解明されていません)... EntitySetController の利点を使用して例を作成した人はいますか?