2017-02-15 7 views
0

現在Dynamics AX 7との組み合わせでoDataクライアントをテストしています.AAのメタデータファイルは900,000行以上あり、デフォルトのoDataクライアントを使用してC#クラスファイルを自動生成すると、あまりにも多くの文字列リテラル(.netエラー)のためにビルドしません。oDataクライアントの制限クラス

私はクライアントのジェネレータに(エンティティ名などで)どのクラスを生成するのかを指示する方法を探しています(クライアント側では約95%は必要ありません)。

悲しいことに、AX側のメタデータを制限することはオプションではありません。

答えて

1

ODATAサービスから利用可能な$metadata情報を変更する必要があったのと同様の問題がありました。 ここでは、DataServiceContextジェネレータを使用し、元のサーバURIを指し示していましたが、Fiddlerをプロキシとして使用しました。 Fiddlerでブレークポイントを使用することで、Visual StudioのDataServiceContextジェネレータに変更済み$metadata xmlを提供することができました。余計に使用した場合、およびAPIが安定している場合はうまく動作します。

+0

は、文字列リテラルのエラーが予想されるとして、それが今取り組んでいるのVisual Studio 2015でVS 2012の代わりに2015を使用してから来てオンにします。 –

0

はいVS2015を使用すると「文字列が多すぎます」というエラーは解決されますが、発生した巨大なファイルを開くか、誤ってデバッグ中にoDataクライアントファイルにステップインするとVisual Studio 2015がクラッシュする問題があります。

この問題を回避するために、oDataクライアントクラスを自動生成するT4テンプレートを編集して、複数のファイルを作成するようにしました。更新されたT4テンプレートを使用すると、同じコードが生成されますが、5MBごとに新しいファイルに分割されます。

更新T4テンプレートは、ここで見つけることができます: https://github.com/batetech/D365FO-oData-T4-MultiFile-Templates

関連する問題