私は最新のアプリケーションでNHibernateとリポジトリパターンを使用しています。私は3つのテーブル/エンティティを持っています:以下のスキーマを持つリージョン、タグ、翻訳。NHibernateとリポジトリパターンを使用して存在しない項目の子コレクションを返す
Regions
Id
RegionName
Tags
Id
FilePath
FileName
TagContent
Translations
Id
RegionId
TagId
Translation
タグテーブルにはフレーズ(タグ)のリストが含まれており、ユーザーは各タグの翻訳を指定できます。それで、tagsテーブルに50個のフレーズ(タグ)が含まれているとします。ユーザーがこれらのタグのうち10個をスペイン語に翻訳した後、スペイン語の地域エンティティには10個の翻訳タグの子コレクションがあります。私は40の非翻訳タグの子コレクションを返すリージョンクラスのプロパティ/メソッドを持つことができるようにしたいと思います。
私は、すべてのタグを取得し、タグが存在するかどうかを領域エンティティのtranlatedタグの子コレクションに確認することで、これを実現できます。しかし、それはすべてクライアント上で起こります。私はそれがサーバー上で起こるようにしたい(SQLに仕事をさせる)。
NHibernateでこれを達成できますか?私のマッピングは何ですか(私はFluentNHibernateを使用しています)
まだ存在しない翻訳の翻訳レコードはありますか?つまり、そこにはレコードがありますが、NULL変換フィールドがありますか?そうであれば、RegionのTranslationsのコレクション全体を取得し、TranslationフィールドがNULLであることをフィルタリングすることができます。 – David
...これが当てはまらない場合は、これに相当するものをNHibernateは返します存在しない翻訳オブジェクトのリスト?いいえ、できません。彼らはどのように見えるでしょうか? – David
linqまたはhqlクエリを使用して、関連する翻訳レコードが存在しないタグのリストを返すことができます。しかし、私が考えることができるオブジェクト・アソシエーションの観点からこれを表現する方法はありません。 – David