0

まず、アプリ内で LinqToSQL とデータ コンテキストを使用して、データベースのクエリと更新を行います。私のアプリは Windows Phone 7 アプリです。

わかりました、そのような列を持つ3つのテーブルがあるとしましょう

  • 表 A -Id, Name, Description
  • 表 B -Id, Count, Cost
  • 表 C -Id, Name, Description, Type

  • テーブル A とテーブル B の間に 1 対多 (多数のテーブル B と 1 つのテーブル A) の関係を持ちたい

  • テーブル C とテーブル B の間に 1 対多の関係を持ちたい (テーブル B が多く、テーブル C が 1 つ)

そこで、関係に使用する列を追加して、3 つのテーブルを次のようにします。

  • 表 A -Id, Name, Description
  • 表 B -Id, Count, Cost, TableA_Id, TableC_Id
  • 表 C -Id, Name, Description, Type

上記を設定しようとしましたが、テーブル B には 2 つの制約があり、コードでこのようなことをすると

TableA Ta = new TableA();
Ta.Name = "NA";
Ta.Description = "NA";
Ta.TableB.Add( new TableB()
               {
                 Count = 1,
                 Cost = 100
               });

App.MyDataContext.Database.TableA.InsertOnSubmit(Ta);
App.MyDataContext.Database.SubmitChanges();

このようなエラーが発生します

対応する主キー値が存在しないため、外部キー値を挿入できません。[ 外部キー制約名 = FK_TableC_TableB ]

エラーが発生した理由を理解したと思いますが、エラーなしで同じ結果を達成できるように、このセットアップを設定する方法があるかどうかを尋ねています。SQL や SQL Server CE は少し使ったことがありますが、このような関係を試したのは初めてです。

編集: 明確にするために、TableA には複数の TableB を含めることができます。TableC には複数の TableB を含めることもできます

4

0 に答える 0