1

私は 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 を使用したソリューションが必要です。

4

1 に答える 1

1

会社の構成でこれを試してください。

HasMany(x => x.Employee).WithRequired().HasForeignKey(x => x.CompanyID);
HasMany(x => x.Janitors).WithRequired().HasForeignKey(x => x.CompanyID);
HasMany(x => x.Students).WithRequired().HasForeignKey(x => x.CompanyID);
HasMany(x => x.Professors).WithRequired().HasForeignKey(x => x.CompanyID);
于 2013-02-21T11:42:59.160 に答える