0

Visual Studio で TA と TB という 2 つのテーブルを作成しました。edmx ファイルで、TA と TB を 1 対多で関連付けました。関連付けを行うと、 という名前の TB に新しい列が生成されTAIdます。

データベースの TB テーブルにその列を追加する必要があるかどうかを知りたいだけですか?

編集: 私が得た例外:

nCeremony.msl(23,10): エラー 3004: 23 行目から始まるフラグメントのマッピングに問題があります: Set CourseOptions のプロパティ CourseOption.MenuId にマッピングが指定されていません。

キー (PK) を持つエンティティは、次の場合にラウンドトリップしません。

エンティティはタイプ [CeremonyDBModel.CourseOption] です

Ceremony.msl(31,10): エラー 3004: 31 行目から始まるフラグメントのマッピングに問題があります: セット メニューのプロパティ Menu.CeremonyId にマッピングが指定されていません。

キー (PK) を持つエンティティは、次の場合にラウンドトリップしません。

エンティティは型 [CeremonyDBModel.Menu]

4

1 に答える 1

0

1 対多の関連付けは、子テーブルのレコードがその親を参照することによって行われます。

顧客と購入の例を考えてみましょう。顧客は多くの購入を行うことができますが、各購入は 1 人の顧客にのみ属することができます。次の 2 つのテーブルを検討してください。

customers     purchases
============  ===========
id  name      id  customer_id  product

各顧客には固有の ID と名前があります。各購入には、一意の ID と製品名もあります。ただし、1 対多の関連付けを行うには、購入テーブルで購入した顧客参照する必要があります。逆にこれを行うことはできませんでした。そうしないと、それぞれが購入を参照する顧客の名前が重複することになります。

例えば:

customers     purchases
============  ===========
id  name      id  customer_id  product
--- --------  --- ------------ --------
1   John      1   1            apple
2   Mary      2   1            orange
              3   2            banana

この例では、John がリンゴとオレンジを購入し、Mary がバナナを購入したことがわかります。

列は、customer_id顧客テーブルとの関係を確立するために、購入テーブルに必要です。

TA テーブルと TB テーブルの間の関連付けを作成することにより、Visual Studio は列を作成しましたTAid。これは、MS SQL Server のようなリレーショナル データベースがそれらを処理する方法であるためです。

于 2012-08-03T20:01:48.357 に答える