0

まず最初に、私はこのようないくつかの解決策を調査しました 今、私はこのような何かを達成しようとしています:

public class Article : Entity 
{
   public int ID {get;set;}
   public CultureInfo Culture {get;set;}
   public DateTime PublishedOn {get;set;}
   public string Title {get;set;}
}

今ここに事実があります:

  1. IDは一意の識別子です
  2. カルチャは異なるカルチャバージョンを区別する必要があります
  3. タイトルプロパティはローカライズする必要があります(カルチャごとに1つ生)
  4. PublshDateはすべてのカルチャで同じであるため、ローカライズしないでください。

さて、これが私が必要とするものです:

  1. enttyごとに1つのクラスのみを使用します。「Article」クラスと「ArticleLocal」クラスは必要ありません。
  2. NHibernateがエンティティに適切な文化を生で取得できるようにするシステムを提供します(現在の文化のグローバルプロパティに基づく)
  3. 可能であれば、NHibernateに初期化時にローカルテーブルを自動的に作成させる。

私の考えは属性を使用することでしたが、すでに証明された解決策があるかどうかはわかりません。ここにアイデアがあります:

[LocalizedEntity]
public class Article : Entity 
{
   public int ID {get;set;}
   [LocalizedCulture("CultureID")]
   public CultureInfo Culture {get;set;}
   public DateTime PublishedOn {get;set;}
   [Localized("Title")]
   public string Title {get;set;}
}
4

1 に答える 1

0

この質問は時々出てきますが、あまり魔法のないものをお勧めします

これには、フォールバックの実装とローカリゼーションの追加が非常に簡単であるという利点があります

于 2012-11-28T08:28:52.427 に答える