1

Entity Framework 5.0 CodeFirst を使用してアプリケーションに組み込みデータベースを提供するプロジェクトを開発している学生です。まったく同じローカル データベースを持つサーバーとクライアント アプリケーションがありますが、2 つの別々のソリューションがあります。

データベースには、図面を含めることができるプロジェクト テーブルがあり、図面にはいくつかのコンポーネントを含めることができます。したがって、クライアントがサーバー上の特定のプロジェクトの図面を照会したい場合は、次のメソッドを作成しました。

GetDrawings(int ProjectId)
{
     var result = suedocode: get all drawings;
}

特定のプロジェクトのすべての図面を取得する必要があります。

私の大きな問題は. サーバーに、次の ID を持つ 10 個のプロジェクトがあるとします: ProjectId: 1、...、ProjectId: 10。

クライアント アプリケーションが ProjectId = 3 でサーバー上のプロジェクトをクエリし、それをクライアントのローカル データベースに保存すると、ProjectId は ProjectId = 1 の新しい ID を取得します。これは、最初のプロジェクトがクライアント データベースに格納されているためです。新しく保存したプロジェクトの図面を照会して、関連付けられた ProjectId を使用すると、ProjectId=1 のサーバー上のプロジェクトに関連付けられた図面が実際に取得されます。

したがって、大きな問題は、サーバーに Id を生成させ、クライアントがプロジェクトを保存するときにそれらの正確な Id を使用できるかどうかです。そのため、サーバー上の ProjectId=4 がクライアントのデータベースに格納されると、テーブル内の最初のプロジェクト ストアであっても、id は ProjectId=4 になります。

理解できるように、私の問題を説明していただければ幸いです。

前もって感謝します

4

1 に答える 1

0

サーバーが生成した ID をローカルに保存できますが、ローカル キーの IDENTITY 機能をオフにします。

また...

主キーとして guid/uniqueidentifier を使用することを検討してください。実行時に割り当てて、必要に応じて保存できます。

意見や戦略を比較したい場合は、多くの議論があります。

于 2013-04-27T08:49:56.320 に答える