私は Java 出身で、C# と Entity Framework を使用して既存のシステムをデータベースに実装しています。
ここでは実際のクラスを示すことができないため、次のように、私の問題と同じ例を作成しようとしました。にCompany
いくつかのプロパティ リストがある がありますPerson
。EF を使用してこれをデータベースに変換すると、 のインスタンスごとに新しい外部キー列が取得されますPerson
。
Company
public GUID CompanyID {get,set}
public List<Person> Employee{get,set}
public List<Person> Janitors {get,set}
public List<Person> Students {get,set}
public List<Person> Professors {get,set}
Person
public GUID CompanyID {get,set}
Person のデータベース スキームを
|Column 1 | Column 2 | Column 3 | Company_FK |
----------------------------------------------
でも今はもっとこんな感じ
| Column 1 | Column 2 | Column 3 | Company_ID | Company_ID1 | Company_ID2 ...
--------------------------------------------------------------------------
null reference null
null reference null
reference null null
~~~~~~~~~~~~~~~~~~~~~~etc~~~~~~~~~~~~~~~~~~
これらの Company_ID* 列はすべて同じ Company テーブルへの参照を持っているため、この参照用に 1 つの列だけを使用して、それらの参照をすべて失うことは不可能ではないと思いますnull
。
データ注釈ではなく、Fluent API を使用したソリューションが必要です。