私は最初の小さな RavenDB アプリケーションを構築していますが、ドメイン モデルを構築するときに、物事に正しく取り組んでいるかどうか疑問に思っています。
モデルの複数の場所で使用したい国のリストがあります。以前は通常、国を格納するデータベース テーブルと、次のような国オブジェクトを作成していました。
public class Country{
public int Id {get;set;}
public string CountryName {get;set;}
}
国クラスを使用するときは、別のオブジェクト内にそのインスタンスを保持していました。たとえば、次のようになります。
public class Shop{
public int Id {get;set;}
public string Name {get;set;}
public Country InCountry {get;set;}
}
または
public class Customer{
public int Id {get;set;}
public string Surname {get;set;}
public Country CountryOfResidence {get;set;}
}
などなど。私が今すべきことは、国のIDをクラスShop
とCustomer
クラスに保存することであると考えているので、それらは次のようになります。
public class Shop{
public int Id {get;set;}
public string Name {get;set;}
public int CountryId {get;set;}
}
public class Customer{
public int Id {get;set;}
public string Surname {get;set;}
public int CountryOfResidenceId {get;set;}
}
これらをデータベースから取得すると、Raven API の include 機能を使用して、関連する国オブジェクトを取得できますが、それは別のオブジェクトにあり、たとえば、myCustomer.Country.Name
.
明らかに、これは非常に不自然な例ですが、このルートを続行する前に、完全に間違ったツリーを鳴らしていないことを確認したいだけです。