2011-01-25 14 views
1

次のデータモデルとドメインオブジェクトに対して、適切なFluentNHibernateマッピング構文を理解するのに問題があります。ここで私が不利に働いてるのデータモデルです: enter image description hereFluentNHibernateマッピングの構文ヘルプが必要です

は、と私はそのモデルに次のドメインオブジェクトをマップしようとしている。一般的には

namespace FluentNHibernateSandbox.Entities 
{ 
    public abstract class EntityBase 
    { 
     public virtual long Id { get; set; } 
    } 
} 

namespace FluentNHibernateSandbox.Entities 
{ 
    public class Attribute : EntityBase 
    { 
     public virtual string Name { get; set; } 
     public virtual string Label { get; set; } 
     public virtual string Description { get; set; } 
     public virtual int SortOrder { get; set; } 
     public virtual Group Group { get; set; } 
     public virtual Editor Editor { get; set; } 
    } 
} 

namespace FluentNHibernateSandbox.Entities 
{ 
    public class Group : EntityBase 
    { 
     public virtual string Name { get; set; } 
     public virtual string Label { get; set; } 
     public virtual string Description { get; set; } 
     public virtual int SortOrder { get; set; } 
     public virtual IList<Attribute> Attributes { get; set; } 
    } 
} 

namespace FluentNHibernateSandbox.Entities 
{ 
    public class Editor : EntityBase 
    { 
     public virtual string ViewName { get; set; } 
     public virtual string WorkerClassName { get; set; } 
    } 
} 

、私は最終的にのように見えるしていません。何をしたいです私が考えることができるすべてのマッピングの組み合わせを試した後、私はまだそれを正しく見せることができません。私は、それが所属するグループへの参照とそれに割り当てられたエディタへの参照を持つために自分の属性を必要とし、各グループはそれの一部である属性の集合を持つ必要があります。いくつかの多対多の結合表は、私に合うように見えるものです。特に、APPLICATION_ATTRIBUTEテーブル。最終的には、私のアプリケーションが関係するアトリビュート(この場合、APPLICATION_IDが4のアトリビュートのみ)が必要です。

何か助けていただければ幸いです。ありがとう。

答えて

2

本当にちょっと驚いたのは誰にもこの返信はありませんでした。でも、とにかくです。私たちが思いついたこのマッピング状況に対する答え/解決策は、まず始めに避けようとしていましたが、本当に最善の方法であると判明しました。データベースにカスタムビューをいくつか作成し、必要なアプリケーション固有のデータを取得し、アプリケーションのドメインオブジェクトをそれらのビューにマップしただけです。これは少なくとも部分的には、これらのテーブルから必要な情報はこのアプリケーションでは読み取り専用になるためですが、テーブルに書き込む必要があったとしても、私はかなり確信しています(ただし、この場合は本当に必要です)、私は自分の意見を書き込み可能にすることができ、それもうまくいったでしょう。

Hat tip to @robconery

+0

大変貴重です。何がうまくいくかはあなたにとって良いことです - それは重要なことです。 –

関連する問題