2011-06-08 72 views
0

NHibernate。 我需要從sql數據庫的列類別中獲取所有值。從列中獲取所有Caterory值

我需要把一個列表,並返回它。

我有這樣的:

public IList<Movie> GetMovieCategories() 
    { 
     using (ISession session = NHibernateSessionBuilder.OpenSession()) 
     { 
      return session.CreateCriteria(typeof(Movie)).List<Movie>(); 
     } 
    } 

問題蒙山這是返回所有表「電影」,而我只需要列「類別」。

我該怎麼做?

+0

NHibernate的由在對象上,而不是表中的列工作。但也許你可以給它一個暗示,你只需要一個成員。 – Qtax 2011-06-08 17:14:45

+0

你有這樣的代碼想法嗎? – ale 2011-06-08 17:49:56

+0

類別是實體還是字符串? – Vadim 2011-06-08 18:08:42

回答

0

應該可以做這樣的事情(假設類是一個字符串):

public IList<string> GetMovieCategories() 
{ 
    using (ISession session = NHibernateSessionBuilder.OpenSession()) 
    { 
     return session.QueryOver<Movie>() 
       .Select(c => c.Category) 
       .List<string>(); 
    } 
} 

這也假設你正在使用NHibernate 3.x的

0

試試這個:

public IList<string> GetMovieCategories() 
{ 
    using (ISession session = NHibernateSessionBuilder.OpenSession()) 
    { 
     return session.CreateCriteria(typeof(Movie)).SetProjection(Projections.Property("Category")).List<string>(); 
    } 
}