以前は L2S を使用していましたが、プロジェクトでシャープ アーキテクチャと共に NHib を使用することを検討しています。私はプロトタイピングを開始しましたが、グーグルで検索する方法がわからない最初の問題に遭遇しました。
いくつかの単純なプロパティと 1 つの参照プロパティ (カテゴリ - ここには示されていないクラス) を持つ POCO が与えられた場合:
public class Post
{
public Post()
{
this.DateCreated = DateTime.Now;
}
public virtual string Title {get;set;}
public virtual DateCreated {get;set;}
public virtual Category {get;set;}
}
これは、投稿の概要を表形式で作成したい場合に便利です。「Category」という名前の列が必要で、カテゴリのタイトルを表示したい場合は、単に Post.Category.Title を使用できます。
ただし、ユーザーは新しい投稿を作成します (ドロップダウン リストなどからカテゴリを選択します)。送信をクリックすると、Post オブジェクトが新しく作成されます。ただし、新しい投稿を永続化する前に、Category プロパティに割り当てるために、Category のインスタンスを (ID で) 取得する必要がありますか?
両方の長所を活かすには?Post POCO を更新して Category を int にすると、新しいインスタンスの作成が簡単になりました。しかし、ID を指定してカテゴリ名を解決する必要がある一部のレンダリング コードでは難しいでしょうか?
ここで基本的な概念が欠けていると思いますか?
Post テーブルに CategoryId という名前の整数の外部キー列があるスキーマが与えられた場合、Linq to Sql を使用すると、基になるテーブル列 (CategoryId) と、外部キー行を含む EntitySet の両方が生成されます。
NHibernateで同様のことを達成するにはどうすればよいですか? これは一般的にどのように管理されていますか?
ありがとう