データベースに必要な正しい関係を設定する際にいくつかの問題があります。
一言で言えば、複数(ゼロ:多数)の支店を持つことができる会社が欲しい
会社で、支店テーブルに存在する本社を指定できるようにしたい(0:1)
私が期待していたのは、Firmテーブルに次のフィールドがあることです: Id、Name、HeadOfficeId、およびブランチ上にあると予想されるフィールド: Id、TradingAs、Name、Firm_Id
代わりに、次のように表示されます。
次のフィールドを持つテーブルを確定します: Id、Name、HeadOfficeId
予想されるブランチ: Id、TradingAs、Name、Firm_Id、Firm_Id1
モデル クラスは次のとおりです。
public class Firm
{
public int Id { get; set; }
public string Name { get; set; }
public virtual ICollection<Branch> FirmBranches { get; set; }
public virtual LawFirmBranch HeadOffice { get; set; }
}
public class Branch
{
public int Id { get; set; }
public string TradingAs {get;set;}
public string Name {get;set;}
public Firm Firm { get; set; }
}
これにより循環参照型の問題が発生することを理解しており、FirmBranches プロパティに値が存在するまで、Firm HeadOffice を最初は Null にすることができて満足しています。
本社が null または 1 つのタイプの関係を持っていることを指定できる方法はありますか