2010-12-19 9 views
7

Ich probiere einen Code aus einem NH 3.0-Kochbuch aus und frage mich, warum ich den folgenden Code nicht kompilieren kann. I denke, dass der QueryProjectionBuilder, der diese Arbeit machen sollte, in "NHibernate.Criterion.Lambda" ist, aber die Verwendung der Direktive dafür nicht hilft.nhibernate queryOver Projektionssyntax

Die Probleme sind die SelectGroup und SelectAvg Teile. Angenommen, die Syntax aus dem Buch ist korrekt, kann jemand eine fehlende Referenz hier sehen?

namespace Queries.Implementations 
{ 
using System; 
using System.Collections.Generic; 
using System.Linq; 
using Eg.Core; 
using NHibernate; 
using NHibernate.Criterion; 
using NHibernate.Criterion.Lambda; 

    public class QueryOverQueries : CookbookQueriesBase 
    { 

     public override IEnumerable<NameAndPrice> GetAvgDirectorPrice(ISession session) { 
      return _session.QueryOver<Movie>() 
       .Select(list => list 
            .SelectGroup(m => m.Director) 
            .SelectAvg(m => m.UnitPrice) 
       ) 
       .List<object[]>() 
       .Select(props => 
         new NameAndPrice 
         { 
          Name = (string) props[0], 
          Price = (decimal) props[1] 
         }); 

     } 
    } 
} 

Antwort

10

Sie haben .SelectList zu verwenden, anstatt .Select

Verwandte Themen