我有两个班级
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映射到电子邮件。每次只需要一封电子邮件。
当我选择
时Session.Query.select(x => x.email.getEmail(EnType.Type1))
生成的SQL是
select emailType1, emailType2,.... From Foo
虽然我只期待
select emailType1 From Foo
答案 0 :(得分:0)
GetEmail()在代码中实现,该代码位于Email类中。您如何看待nhibernate应该知道代码应该做什么?
它只获取整个电子邮件类(组件),然后让它决定返回什么。