0

問題が見つかりましたが、それは VS 2010 の BETA バージョンに関するものです。この問題が RTM で修正されているかどうか知りたいですか?

基本的にそれは述べています(EF 4 Self Tracking Entities経由で見たのは期待どおりに機能しません

Self-Tracking Entity テンプレートの生成されたエンティティ コードをクライアントで再利用するようにしてください。Visual Studio またはその他のツールで [サービス参照の追加] によって生成されたプロキシ コードを使用すると、ほとんどの場合は問題ないように見えますが、エンティティが実際にはクライアントでの変更を追跡していないことがわかります。

私は Add Service Reference の使用に非常に慣れており、過去には常にうまく機能していましたが、もちろん STE (自己追跡エンティティ) は使用していませんでした。この問題は、VS 2010 RTM と STE テンプレートでまだ明らかですか?

サービスを追加する代わりにコードを介してプロキシを作成すると、すべてのクラスが作成されませんか?

どんな助けや洞察も本当に感謝しています

4

1 に答える 1

1

これは問題ではなく、問題ではありませんでした。これは絶対に予想される正しい動作です。STEは、データとロジックを含むクラスです(ロジックは変更を追跡します)。

サービス参照を追加すると、クライアントプロキシコードはサービスのメタデータから生成されます。メタデータはWSDL形式で公開されます。WSDLは、転送されたデータ型のXSD記述も含むサービスのXMLベースの記述です。XSDはデータ形式のみを記述できますが、タイプによって実装される関連ロジックは記述できません。デフォルトでは、WSDLで記述されているすべての不明なデータ型がクライアントで生成されます。したがって、サービス参照の追加によってすべてのデータ型でクライアントプロキシを生成すると、追跡ロジックが失われます。

この問題を克服するには、次の2つのことを行う必要があります。

  • 別のアセンブリを作成し、すべてのSTEをこのアセンブリに配置します。次に、このアセンブリを関連するすべてのレイヤー間で共有します(はい、クライアントで[参照の追加]を使用する必要があります)。
  • 次に、[参照されるアセンブリのタイプを再利用する]をオンにして[サービス参照の追加]を使用できます。
于 2011-01-09T13:21:57.527 に答える