14

私はEntityFramework4.1データベースの最初のアプローチを使用しています。レガシーデータベースを使用しました。レガシーデータベースのテーブルに基づいてエンティティクラスを作成した私のedmxファイルでは、いくつかのエンティティ間に1対0または1の関連付けがあります。

データベースのテーブルとそれらの間の関係を調べましたが、データベースに1対0または1の関係がどのように実装されているかはわかりませんでした。

詳細については、データベース図のスクリーンショットと、その関係および対応するエンティティのプロパティをedmxファイルに入れました。

ここに画像の説明を入力してください ここに画像の説明を入力してください

4

2 に答える 2

32

データベース内の1-0..1リレーションは直接表示されます。これは、CourseテーブルとOnlineCourseテーブルの間に構築され、Courseはリレーション(1)でプリンシパルであり、OnlineCourseはCourseIDで構成されたFKに依存します。FKはOnlineCourseのPKでもあります=一意である必要があるため、0..1です。

データベースは「常に」1-0..1を使用します。これは、実際の1-1をデータ挿入に効果的に使用できないためです。1-1は、左を右の後に挿入する必要があるが、右を左の後に挿入する必要があることを意味します=不可能。そのため、1-0..1が使用されます。ここで、左が主であり、右と右が依存する前に挿入する必要があり、左の後に挿入する必要があります。

于 2011-10-04T08:09:05.690 に答える
1

データベーステーブルがすでに1:1の関係(または1:0-1)で設計されている場合、EFは子テーブルの名前を複数形にしますが(複数形にする場合)、それで問題なく機能します。

基本的なアプローチは、外部キーを作成し(1対多の関係を作成しているかのように)、外部キーフィールドに一意のインデックスを設定することです。それはあなたが達成しようとしていることですか?

これも役立つ場合があります。SQLServerで1:1と1:mの関係を設計する

ちなみに、1-1の関係は必要ない場合が多く、データベース設計の症状として再考が必要です。ただ、デザインを受け継いだようですね…それは全部知ってるよ!

于 2011-10-04T06:57:03.677 に答える