1

私はエンティティ フレームワークを、最新の Silverlight から WCF アプリケーションへのセルフ トラッキング エンティティ コード生成テンプレートと組み合わせて使用​​しています。実際のプロジェクトでエンティティ フレームワークを使用するのはこれが初めてであり、データベース スキーマが変更されたときにプロジェクトのデータ アクセス レイヤー全体を自動的に更新できるようにすることで、多くの時間と労力を節約できることを願っていました。

幸いなことに、新しいテーブルの追加、列名の変更、新しい列の追加などによるデータベース スキーマの更新は、エンティティのデータベース オプションからの更新を使用して、ビジネス オブジェクト クラスに伝播できることがわかりました。フレームワーク モデル。

私が苦しんでいるのは、Silverlight クライアントでのアクションに対応する WCF サービス内の CRUD 操作です。Silverlight アプリで同じセルフ トラッキング エンティティ フレームワーク ビジネス オブジェクトを使用していますが、オブジェクトの更新時に外部キーの関連付けが正しく処理されない、または変更トラッカーがオブジェクトの状態について混乱するなどの問題と常に戦わなければならないことがわかりました。 Silverlight エンドのオブジェクトと、WCF レイヤー内のデータ アクセス操作がぐらつきます。

独自のビジネス オブジェクトをローリングするための出発点として Linq-to-SQL を使用した以前のプロジェクトよりも、この癖に対処するのに多くの時間を費やしたところまで来ました。

それは私がどうしようもないだけなのですか、それとも自己追跡エンティティが、より成熟するまで避けるべき何かに近づいているのでしょうか?

4

2 に答える 2

1

使用しているセルフ トラッキング エンティティのバージョンは何ですか?

Visual Studio 2010 と共に .Net 4.0 バージョンを使用しています。すべての CRUD 操作は正常に動作し、FK での操作も可能です。

VS 2008 では FK で問題がありましたが、VS 2010 では .Net 4.0 で解決しました。

もしよろしければ、いくつかのサンプルを提供できます。

ご挨拶

于 2010-06-05T18:43:18.230 に答える
0

STEエンティティは遅延読み込みをサポートしていないため、サーバー側のインクルード関連プロパティでインクルードを使用する必要があります。関連するすべてのナビゲーションプロパティを含める方法はありません。プロパティを明示的に含める必要があります。たとえば、//サーバー側customer.Include( "Orders.OrderDetails")。Include( "Address")

于 2010-07-06T17:02:13.217 に答える