0

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();
}
4

0 に答える 0