私はおおよそ次のように見ている私のデータベース内のテーブルを持っている:NHibernateの "グループ名"列からグループエンティティクラスをマッピングするには?
create table Foo (
Id int identity not null,
Name varchar(100) not null,
GroupName varchar(100) not null,
constraint PK_Foo primary key (Id)
)
今、私はこのような2つのエンティティクラスにこのテーブルをマッピングする:
class Foo {
public virtual in Id { get; private set; }
public virtual string Name { get; set; }
public virtual Group Group { get; set; }
}
class FooGroup {
public virtual string Name { get; set; }
public virtual ISet<Foo> Foos { get; private set; }
}
はNHibernateの持つ可能性、このですか?私はネットとNHのドキュメントを検索しようとしましたが、何を探したらいいのか分かりません。検索クエリのアイデアは高く評価されます。
カスタムHQL/SQLクエリを使用して個別のグループ名を選択し、別のカスタムクエリを使用して適切なセットのアイテムを選択するFooGroup
のマッピングを作成することはできますか?
あなたは何を達成しようとしているのですか、なぜ2つのクラスが必要ですか? – epitka
データモデルがもともと設計されていたとき、グループ名は名前にすぎませんでした。後で、物事が進化するにつれて、実際のグループには現在、遵守するビジネスルールがあるように見えます。例:FooGroupには、魔法のビジネス集約関数を含まれているFoosに適用し、整数を返すメソッドBar()が必要です。これをDDDのやり方でやってみると、文字列 'GroupNameをFooGroupクラスにリファクタリングし、ここでメソッドを宣言できるとわかりました。これは理にかなっていますか? –
私の質問と似たような音 –
Firo