私はEFを初めて使用し、参照テーブルからキーを作成または使用する必要があるシーンの1つにここで立ち往生しています。ユーザーは、参照テーブルに新しいレコードを作成するか、既存のレコードを使用できます。そのために、以下に示すようにエンティティ モデルを作成しました。
Public class MaterialLineEntry()
{
EntryNumber = 0,
OrganisationID=0,
Organisation Organisation
};
と
Public class Organisation ()
{
ID = 0,
Description = "Test",
EntityChangeStatus ;
};
これらの行エントリは、レポートと呼ばれる別のエンティティ内で定義されます
Public class Report()
{
List< MaterialLineEntry> materilaLineEntries;
};
以下に示すように詳細を入力し、オブジェクト (レポート) を UnitOfWork に添付してコミットすると、すべて正常に動作します。エンティティ フレームワークは参照テーブルにレコードを作成し、新しく生成された外部キーを使用して行エントリ テーブルに入力します。
Report report =new Reort();
report. materilaLineEntries.Add(new MaterialLineEntry()
{
EntryNumber=1,
OrganisationID=0,
Organisation=new Organisation()
{
ID = 0,
Description = "Test",
EntityChangeStatus = EntityChangeStatus.Unchanged,
}
})
しかし、同じ組織の詳細を持つ行エントリに 2 つのオブジェクトを追加すると、次のようになります。
report. materilaLineEntries.Add(new MaterialLineEntry()
{
EntryNumber=1,
OrganisationID=0,
Organisation=new Organisation()
{
ID = 0,
Description = "Test",
EntityChangeStatus = EntityChangeStatus.Unchanged,
}
})
以前に作成した外部キーを使用する必要があります(一意の定数がある可能性があるため)。参照テーブルに重複レコードを挿入しようとしています。ここで必要なのは、エンティティ フレームの作業で最初の組織の詳細を追加し、同じレコード (この場合は [説明] 列) の後続の発生に対して同じ ID を使用する必要があることです。
これを解決するのを手伝ってください。前もって感謝します。(外部テーブルにデータを1つずつ追加して、さらに外部キーを使用することも考えましたが、それは悪い考えだと思います)。