我有兩個類在NHibernate中使用LInq時選擇了額外的列嗎?
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....
}
}
我美孚映射使用組件映射到電子郵件。每次只需要一封電子郵件。
當我選擇
Session.Query.select(x => x.email.getEmail(EnType.Type1))
SQL生成是
select emailType1, emailType2,.... From Foo
,而我只期望
select emailType1 From Foo
雖然這可能不是一個流行的答案,但linq到Nhibernate存在很多錯誤(嘗試連接),它會執行很多你不會期望的事情。如果你想控制NHibernate寫查詢的方式,我會推薦使用Criteria或QueryOver來獲得你想要的。 – 2012-08-14 07:03:27