1

私は2つのクラスを持っています

Public class Foo 
{ 
   int Id {get;set;}
   Email DefaultEmail {get;set;} 
}

Public class Email 
{ 
   string main {get;set;} 
   string backup {get;set;}
   string recover {get;set;}
}

 Public string GetEmail(EnType)
 {
      switch(EnType)
      {
            Case EnType.Type1:
                return this.main;

            // others condition....
      }
 }

コンポーネント マップを使用して Foo を Email にマップします。必要な電子メールは毎回 1 つだけです。

私が選ぶとき

Session.Query.select(x => x.email.getEmail(EnType.Type1))

生成されるSQLは

select emailType1, emailType2,.... From Foo

私はただ期待している間

select emailType1 From Foo
4

1 に答える 1

0

GetEmail() は、Email クラスにあるコードで実装されます。nhibernate はコードが何をしているのかをどのように知る必要があると思いますか?

メール クラス (コンポーネント) 全体を取得し、何を返すかを決定します。

于 2012-08-14T08:27:24.347 に答える