問題タブ [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.
c# - OData の $extend 動作によってエンティティが返されないようにする
私のエンティティ モデルには、エンティティを作成したユーザーにリンクするエンティティがたくさんあります。ここに簡単な例があります...
OData エンドポイント経由で JobNotes を公開したいのですが、パスワードとハッシュ ソルトが含まれているため、現時点ではユーザーを公開したくありません。
OData モデルから行を削除しただけedmxModelBuilder.EntitySet<EF.User>("Users")
では、ユーザーに関連付けられている JobNote やその他のオブジェクトを取得できません。
エンティティ フレームワーク モデルからパスワードとソルトのプロパティを削除すると、モデルを使用して、アプリケーションの他の領域でユーザーを検証できなくなります。おそらくそれを回避できますが、修正ではなく最後の手段と考えています。
User プロパティに HasNavigationPropertyLink メソッドを使用することを検討していますが、まだどのように機能するのかよくわかりません。
編集:さて、ナビゲーション プロパティ リンクを作成しました....
...しかし、それは私に同じ問題を与えています。これは、モデルを既に構築した後に構成を更新しているためだと思いますが、再構築して再割り当てすることはできません。
odata - Web API で型なしエンティティ オブジェクトのサポートを使用している場合の OData Null ナビゲーション プロパティ
私は 2 つのタイプの Person と Honorific を持っており、それらの間には 0..1 対 Many の関係があります。展開をサポートするために queryOptions.request.SetSelectExpandClass を使用しています。敬称がある場合に敬語を展開するのに完全に機能します。
敬称がない場合、Jsonペイロードに敬語=(null)を含める必要があります。そのような状況では、TryGetPropertyValue から null を返しますが、Json シリアライザーは、Honorif=(null) を挿入する必要がある Honorific への参照を完全に省略します。これを達成する方法についてのアイデアはありますか?ありがとう!
c# - JSON.NET + WebApi2/OData で Geography のシリアル化を変更する
OData を使用して公開している単純な ADO.NET エンティティ モデルがあります。エンティティ モデルのフィールドの 1 つは地理タイプ (SQL Server の地理) です。データを問題なくクエリでき、geography 列に対して次のシリアル化された形式を取得できます。
これは機能しますが、このオブジェクトのシリアル化を変更して、次のようにできることを願っています。
確かに、これは主に美学のためですが、より単純なグラフと短いメッセージもあるとよいでしょう。
私は役立つと思った次のクラスを書きました:
そして、それを OData 構成の JSON シリアライザー設定に追加しました。
しかし、違いはないようです。実際、CanConvert に配置されたブレークポイントには決して到達しないため、JSON を正しく設定していないと思いがちです。
私も試しました:
しかし、これも効果がありませんでした。
うまくいけば、誰かが私が間違っていることを指摘できますか?