多くのエンティティにローカライズが必要なコンテンツがあるドメイン モデルがあります。たとえば、名前と説明に多言語サポートが必要な Product エンティティがあるとします。同じことが他の多くのエンティティにも当てはまります。
今、これは私が実装したいデザインです:
class LocalizedContent {
public Guid Id {get; set; }
public virtual ICollection<LocalizedContentEntry> Values {get; set;}
}
class LocalizedContentEntry {
public int Id {get; set; }
public Guid ContentId {get; set; }
public string Locale {get; set; }
public string Value {get; set; }
}
class Product {
public int Id {get; set; }
public LocalizedContent Name {get; set; }
public LocalizedContent Description {get; set; }
}
class OtherEntity {
public int Id {get; set; }
public LocalizedContent SomeColumn {get; set; }
}
私が気に入らない点の 1 つは、LocalizedContent のテーブルに 1 つの列 (Id) しかないことです。その目的は、LocalizedContentEntity と他のテーブルの間のブリッジとして機能することです。Db の観点から言えば、私が本当に必要としているのは LocalizedContentEntity テーブルだけです。1 列のテーブルを作成せずにこれらのエンティティをマップする方法はありますか?