1 // Copyright 2004-2008 Castle Project - http://www.castleproject.org/
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
7 // http://www.apache.org/licenses/LICENSE-2.0
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
15 namespace Castle
.ActiveRecord
.Queries
18 using System
.Collections
;
20 using Castle
.ActiveRecord
.Framework
;
27 public class SimpleQuery
: HqlBasedQuery
29 private readonly Type returnType
;
34 /// Creates a new <c>SimpleQuery</c>.
36 public SimpleQuery(Type targetType
, Type returnType
, string query
, params object[] parameters
)
37 : base(targetType
, query
, parameters
)
39 this.returnType
= returnType
;
43 /// Creates a new <c>SimpleQuery</c>.
45 public SimpleQuery(Type returnType
, string query
, params object[] positionalParameters
)
46 : this(returnType
, returnType
, query
, positionalParameters
)
51 /// Creates a new <c>SimpleQuery</c>.
53 public SimpleQuery(Type targetType
, Type returnType
, QueryLanguage queryLanguage
, string query
, params object[] parameters
)
54 : base(targetType
, queryLanguage
, query
, parameters
)
56 this.returnType
= returnType
;
60 /// Creates a new <c>SimpleQuery</c>.
62 public SimpleQuery(Type returnType
, QueryLanguage queryLanguage
, string query
, params object[] positionalParameters
)
63 : this(returnType
, returnType
, queryLanguage
, query
, positionalParameters
)
70 /// Executes the query and converts the results into a strongly-typed
71 /// array of <see cref="returnType"/>.
73 /// <param name="session">The <c>NHibernate</c>'s <see cref="ISession"/></param>
74 protected override object InternalExecute(ISession session
)
76 IList results
= (IList
) base.InternalExecute(session
);
77 return SupportingUtils
.BuildArray(returnType
, results
, false);