問題タブ [odata-v4]

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 投票する
2 に答える
6298 参照

.net - XML で Web API OData v4 の OData カタログを取得する

Web API OData V4 エンドポイントを稼働させようとしています。

最終的に(エンドポイントからすべての DateTime プロパティを削除した後)実行に移し、エンティティのリストが JSON になりました。

私は JSON が大好きですが、LinqPad を使用してエンドポイントをテストしています。フィードにあるエンティティのリストの JSON を理解できません。

これを XML に戻す方法を調べましたが、見つからないようです。そのため、ここで質問しています。

Web API OData v4 フィードのエンティティのリストを JSON ではなく XML にする方法はありますか?

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

c# - oData V4 クライアント ジェネレーターを使用した AADL

Azure Active Diretory Library を使用して、Web アプリケーションと OData V4 WebApi 間の認証を実装しようとしています。SQL を使用してユーザーを認証するため、AADL を使用して認証する必要はなく、アプリケーションを認証するだけです。インターネットでいくつかのデモを見ましたが、この種のことを行うものはありません。主な問題は、Web アプリケーションが OData クライアント ジェネレーターを使用しているため、API を呼び出すために HttpClient リクエストを開く必要がないことです。コンテキストを使用するだけです。このシナリオを考慮して、自分の odata API を自分の Web アプリケーションだけが使用できるように保護するにはどうすればよいでしょうか? これが私のコードの例です。

私の odata コントローラーの 1 つ

これは、Web アプリケーションでこのコントローラーを呼び出す方法です

そして、すべてが私の OData Client .cs ファイルから直接取得されます

うまく機能するodataを使用するのはこれが初めてですが、APIを保護する必要があります。

ありがとう

0 投票する
2 に答える
4323 参照

odata - Web API 2.2 で Odata v4.0 で $select および $expand を使用するとエラーが発生する

OData v4 用に構成された Web API 2.2 があります。ユーザーを ID で返し、ユーザーがメンバーであるユーザー グループ ID のみを含めたいと考えています。私がこれをするとき

このエラーが発生します

URI で指定されたクエリが無効です。select 句に複数のナビゲーション プロパティを持つパスが見つかりました。select または expand の各レベルに TypeSegments または Properties のみが含まれるようにクエリを書き直してください。

select 句に複数のナビゲーション プロパティを持つパスが見つかりました。select または expand の各レベルに TypeSegments または Properties のみが含まれるようにクエリを書き直してください。

「、userGruops/id」を削除すると、クエリが実行されます

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

odata - Odata モデル ビルダーで 2 つのエンティティを結合する方法

私は現在 OData V4 を使用しており、アカウントと製品の 2 つのテーブルに参加したいと考えています。

テーブルは次のとおりです。アカウント: ID、名前、住所、カラーコード、

製品: ID、AccountId

Product テーブルの AccountId は、Account テーブルの Id フィールドにマップされた外部キーです。

私のビルダーには次のものがあります:

Product エンティティを作成するときに、Account エンティティから「ColorCode」値を取得したいと考えています。

モデルビルダーでこの関係を確立するにはどうすればよいですか?

製品クラスを次のようにしたいと思います。

0 投票する
2 に答える
2225 参照

asp.net-web-api - コードで (オプションの) ナビゲーション プロパティ (?$expand=) をどのように定義しますか?

最初に説明と要点、次に質問です。そう:

コードAccountView生成されたクラスが

次に、同じ名前空間 ( Entities)に部分クラスを作成します。

そしてWebApiConfig、次のように、OData v4(WebApiを使用した最新の6.9.0.0シリーズ、これも最新)で何かを書く、またはしようとします

結果$metadataは次のようになります

質問:コメントで述べたようにTODO、どのように定義すればよいですか?

  • http://example.com/Accounts?$expand=Companyor http://example.com/Accounts?$Companies?を呼び出すことができるナビゲーション プロパティ。

今私が呼び出すと動作します

  • http://example.com/Accountsまた
  • http://example.com/Accounts(someId)

次に、次のようなことをすると

  • http://example.com/Accounts?$expand=Companies
  • http://example.com/Accounts?$expand=Companyまた
  • http://example.com/Accounts(someId)?$expand=Company

HTTP 400 (?$expand=Companies) またはHTTP 500 (?$expand=Company) で迎えられます。

Containment私はすでに関係を築くことに成功しました。ただし、ルート エンティティを ID で定義する必要があるように見えますが、ルートに「GET」を提供し、オプションで「子リスト」オブジェクトに展開したい (したがって、?$expand= に関するこの質問) .

今のケースでは、expand1 つのエンティティに対して 1 つのオプションではない処理を行っていますが、次に希望するのは、エンティティ (またはこの特定の例に関しては企業) のリストがあるシナリオですが、どうすればこれらを達成できるのでしょうか?シナリオ?最初の常に存在するサブオブジェクトに展開するこのケースでも修正するにはどうすればよいですか?

私のコントローラーは次のように定義されています

私が基本的にやろうとしているのは、最初にデータベース、edmx、ビューにいくつかのメタデータを追加し、記事Using $select, $expand, and $value in ASP.NET Web API 2 ODataを模倣することです。これまでのところ成功していません...

<編集 1:いわばプロットが厚くなります。HTTP 500 エラーは、次のような内部例外 (マネージド フレームワーク例外への中断を有効にする必要がありました) から発生します。

タイプ 'System.NotSupportedException' の初回例外が EntityFramework.dll で発生しました

追加情報: 指定された型メンバー 'Company' は、LINQ to Entities ではサポートされていません。初期化子、エンティティ メンバー、およびエンティティ ナビゲーション プロパティのみがサポートされています。

したがって、はい、AccountViewビューであり、テーブルへの直接の外部キー関係はありませんCompany(たまたまテーブルですが、ビューでもある可能性があります)。どうすれば追加できますか?情報によって証明されるように、私はメタデータを追加することですでにトリックを行っていました$metadata。ODataINNER JOINはデータベースに を書き込むだけではありませんか? ここで何か不足していますか?...これは、Company参照を追加した方法に関連しているようで、EFはそれが好きではありません。ODataモデルのみに追加する必要があるようです...

<編集 2:表の定義の大文字と小文字を一致させるために toAccountView CompanyIdを変更しても (少なくとも私が持っている設定では) 違いはないようです。CompanyIDCompany

<edit3:これに関連する別の質問をしました。How to add complex properties on a model built with an ODataConventionModelBuilder from an EF model .

0 投票する
0 に答える
1013 参照

odata - EF モデルから ODataConventionModelBuilder で構築されたモデルに複雑なプロパティを追加する方法

EFデータベースの最初のedmxで定義されたモデルがあります。そこから、いくつかのテーブルとビュー (主にビュー) を公開します。OData を使用して EF モデルを拡張することは可能ですが、複合型のナビゲーション プロパティを別の EF および OData 公開型に追加するにはどうすればよいでしょうか?

現在、部分クラスを定義し、それらを使用してプロパティと属性を追加しています。しかし、OData の modelbuilder 機能を使用して必要なプロパティを追加することも可能であるように見えます。または、最初に使用ODataConventionModelBuilderしてから結果を拡張することもできます。残念ながら、既存の API ドキュメントと私が見つけた例から実際の例をつなぎ合わせることができません。

これがコードです

これは、OData とモデルに関する私の他の質問に関連しています。