NHibernate Version: 2.1.0.4000
NHibernate.Linq Version: 1.0.0.4000

I'm trying to execute the following linq expression using
NHibernate.Linq:

return (from migration in CurrentSession.Linq<MigrationHistory>()
           where migration.MigrationUser.Id == userId
           select new UserMigrationInfo
           {
                Id = migration.Id,
                DateOfMigration = migration.DateOfMigration,
                StartTime = migration.StartTime,
                EndTime = migration.EndTime,
                IsSuccessful = migration.IsSuccessful,
                MigrationUserName = migration.MigrationUser.UserName,
                //error when trying to inject MigrationProperties
                Properties = migration.MigrationProperties
            }).ToList().Distinct();

This query ran fine until I added the MigrationProperties property to
the select statement at which time I get the below stacktrace.
MigrationProperties is a List that is the many side of a one-to-many
relationship with MigrationHistory.  So I guess my question is can I
do this with linq or do I need to revert back to HQL or ICriteria to
do this?

SQL Generated:

SELECT this_.Id as y0_, this_.DateOfMigration as y1_, this_.StartTime
as y2_, this_.EndTime as y3_, this_.IsSuccessful as y4_,
migrationu1_.UserName as y5_ FROM [MigrationHistory] this_ left outer
join [MigrationUser] migrationu1_ on
this_.MigrationUserId=migrationu1_.Id WHERE migrationu1_.Id = @p0;@p0
= 26


Stack Trace:

[IndexOutOfRangeException: Index was outside the bounds of the array.]
 
NHibernate.Transform.TypeSafeConstructorMemberInitResultTransformer.InvokeMemberInitExpression
(MemberInitExpression expression, Object[] args, Int32& argumentCount)
+404
 
NHibernate.Transform.TypeSafeConstructorMemberInitResultTransformer.TransformTuple
(Object[] tuple, String[] aliases) +150

[QueryException: could not instantiate:
Repositories.UserMigrationInfo]
 
NHibernate.Transform.TypeSafeConstructorMemberInitResultTransformer.TransformTuple
(Object[] tuple, String[] aliases) +265
   NHibernate.Loader.Criteria.CriteriaLoader.GetResultColumnOrRow
(Object[] row, IResultTransformer resultTransformer, IDataReader rs,
ISessionImplementor session) +172
   NHibernate.Loader.Loader.GetRowFromResultSet(IDataReader resultSet,
ISessionImplementor session, QueryParameters queryParameters, LockMode
[] lockModeArray, EntityKey optionalObjectKey, IList hydratedObjects,
EntityKey[] keys, Boolean returnProxies) +330
   NHibernate.Loader.Loader.DoQuery(ISessionImplementor session,
QueryParameters queryParameters, Boolean returnProxies) +704
   NHibernate.Loader.Loader.DoQueryAndInitializeNonLazyCollections
(ISessionImplementor session, QueryParameters queryParameters, Boolean
returnProxies) +70
   NHibernate.Loader.Loader.DoList(ISessionImplementor session,
QueryParameters queryParameters) +111
   NHibernate.Loader.Loader.ListIgnoreQueryCache(ISessionImplementor
session, QueryParameters queryParameters) +18
   NHibernate.Loader.Loader.List(ISessionImplementor session,
QueryParameters queryParameters, ISet`1 querySpaces, IType[]
resultTypes) +79
   NHibernate.Impl.SessionImpl.List(CriteriaImpl criteria, IList
results) +381
   NHibernate.Impl.CriteriaImpl.List(IList results) +41
   NHibernate.Impl.CriteriaImpl.List() +34
   NHibernate.Linq.<GetEnumerator>d__0.MoveNext() +71
   System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
+7667732
   System.Linq.Enumerable.ToList(IEnumerable`1 source) +61

-- 
You received this message because you are subscribed to the Google Groups 
"nhusers" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/nhusers?hl=en.

Reply via email to