LinqToSQL を使用してデータベース作業を行っている ac# アプリがあります。
私のSQLデータベースには、そのように設定された2つのテーブルがあります
表 1 - 名前 = ログ
列 - Id (Int NOT NULL IDENTITY)、DefectId (Int NOT NULL)、Stage (Int NOT NULL)
表 2 - 名前 = 欠陥
列: ID (Int NOT NULL IDENTITY)、名前 (NVarChar(50) NOT NULL)
テーブル 2 は、OneToMany 関係を介してテーブル 1 と関係があります。したがって、1 つの DEFECT エンティティから多数の LOG エンティティへ。
関係のためのVS 2012のアソシエーションエディタはそうです
親クラス = 欠陥 | 子クラス = ログ
関連プロパティ
欠陥のプロパティ = ID | ログのプロパティ = DefectId
それがセットアップです。私の問題は、そのように新しいLOG
エンティティを作成すると
Log L = new Log();
次にエンティティを取得し、DEFECT
それを L の DEFECT プロパティに割り当てます。
var d = (from def in DatabaseContext.DEFECT
where def.Id == 1
select def).Single();
L.DEFECT = d;
L
データベースに挿入すると、新しいエンティティとしても挿入さL.DEFECT
れます。つまり、重複が発生します。
どこかでセットアップが間違っているか、プロパティの設定が間違っているので、私が何を間違えたか、または確認できることを誰かが知っているかどうか尋ねています。
MS SQL MANAGMENT STUDIO を使用して、データベースを確認および変更しています。プロジェクトでマッピングなどを生成するために、vs 2012 で MSLinqToSQLGenerator を使用しました。
私は他のプロジェクトで sql と LinqToSQL を数回使用していますが、私はまだ初心者なので、用語が間違っている可能性があります。
更新: 挿入コード
using (dbTechLogDataContext db = new dbTechLogDataContext())
{
db.Logs.InsertOnSubmit(L);
db.SubmitChanges();
}