問題タブ [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.
.net - XML で Web API OData v4 の OData カタログを取得する
Web API OData V4 エンドポイントを稼働させようとしています。
最終的に(エンドポイントからすべての DateTime プロパティを削除した後)実行に移し、エンティティのリストが JSON になりました。
私は JSON が大好きですが、LinqPad を使用してエンドポイントをテストしています。フィードにあるエンティティのリストの JSON を理解できません。
これを XML に戻す方法を調べましたが、見つからないようです。そのため、ここで質問しています。
Web API OData v4 フィードのエンティティのリストを JSON ではなく XML にする方法はありますか?
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を保護する必要があります。
ありがとう
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」を削除すると、クエリが実行されます
odata - Odata モデル ビルダーで 2 つのエンティティを結合する方法
私は現在 OData V4 を使用しており、アカウントと製品の 2 つのテーブルに参加したいと考えています。
テーブルは次のとおりです。アカウント: ID、名前、住所、カラーコード、
製品: ID、AccountId
Product テーブルの AccountId は、Account テーブルの Id フィールドにマップされた外部キーです。
私のビルダーには次のものがあります:
Product エンティティを作成するときに、Account エンティティから「ColorCode」値を取得したいと考えています。
モデルビルダーでこの関係を確立するにはどうすればよいですか?
製品クラスを次のようにしたいと思います。
asp.net-web-api - コードで (オプションの) ナビゲーション プロパティ (?$expand=) をどのように定義しますか?
最初に説明と要点、次に質問です。そう:
コードAccountView
生成されたクラスが
次に、同じ名前空間 ( Entities
)に部分クラスを作成します。
と
そしてWebApiConfig
、次のように、OData v4(WebApiを使用した最新の6.9.0.0シリーズ、これも最新)で何かを書く、またはしようとします
結果$metadata
は次のようになります
質問:コメントで述べたようにTODO
、どのように定義すればよいですか?
http://example.com/Accounts?$expand=Company
orhttp://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= に関するこの質問) .
今のケースでは、expand
1 つのエンティティに対して 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
を変更しても (少なくとも私が持っている設定では) 違いはないようです。CompanyID
Company
<edit3:これに関連する別の質問をしました。How to add complex properties on a model built with an ODataConventionModelBuilder from an EF model .
odata - EF モデルから ODataConventionModelBuilder で構築されたモデルに複雑なプロパティを追加する方法
EFデータベースの最初のedmxで定義されたモデルがあります。そこから、いくつかのテーブルとビュー (主にビュー) を公開します。OData を使用して EF モデルを拡張することは可能ですが、複合型のナビゲーション プロパティを別の EF および OData 公開型に追加するにはどうすればよいでしょうか?
現在、部分クラスを定義し、それらを使用してプロパティと属性を追加しています。しかし、OData の modelbuilder 機能を使用して必要なプロパティを追加することも可能であるように見えます。または、最初に使用ODataConventionModelBuilder
してから結果を拡張することもできます。残念ながら、既存の API ドキュメントと私が見つけた例から実際の例をつなぎ合わせることができません。
これがコードです
これは、OData とモデルに関する私の他の質問に関連しています。