Matt W
unread,Nov 20, 2009, 11:04:45 AM11/20/09Sign in to reply to author
Sign in to forward
You do not have permission to delete messages in this group
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to nhusers
Hello,
I'm not sure if this is the right spot to post this but here is the
issue I'm having with Linq to NHibernate.
I have a parent table and a child table and I'd like to do a query
like this:
var y = (from p in session.Linq<Parent>()
select new
{
p.ColumnA,
Count = p.Childern.Count(c=> c.ColumnC == "blah"),
}).ToList();
When this runs, I get this error:
NHibernate.QueryException was unhandled
Message="could not resolve property: Childern.ChildId of:
LToNHTest.Parent"
Source="NHibernate"
StackTrace:
at
NHibernate.Persister.Entity.AbstractPropertyMapping.GetColumns(String
propertyName)
at NHibernate.Persister.Entity.AbstractPropertyMapping.ToColumns
(String alias, String propertyName)
at
NHibernate.Persister.Entity.BasicEntityPropertyMapping.ToColumns
(String alias, String propertyName)
at NHibernate.Persister.Entity.AbstractEntityPersister.ToColumns
(String alias, String propertyName)
at NHibernate.Loader.Criteria.CriteriaQueryTranslator.GetColumns
(String propertyName, ICriteria subcriteria)
at NHibernate.Loader.Criteria.CriteriaQueryTranslator.GetColumn
(ICriteria criteria, String propertyName)
at NHibernate.Criterion.CountProjection.ToSqlString(ICriteria
criteria, Int32 position, ICriteriaQuery criteriaQuery, IDictionary`2
enabledFilters)
at NHibernate.Criterion.ProjectionList.ToSqlString(ICriteria
criteria, Int32 loc, ICriteriaQuery criteriaQuery, IDictionary`2
enabledFilters)
at NHibernate.Loader.Criteria.CriteriaQueryTranslator.GetSelect
(IDictionary`2 enabledFilters)
at NHibernate.Loader.Criteria.CriteriaJoinWalker..ctor
(IOuterJoinLoadable persister, CriteriaQueryTranslator translator,
ISessionFactoryImplementor factory, ICriteria criteria, String
rootEntityName, IDictionary`2 enabledFilters)
at NHibernate.Loader.Criteria.CriteriaLoader..ctor
(IOuterJoinLoadable persister, ISessionFactoryImplementor factory,
CriteriaImpl rootCriteria, String rootEntityName, IDictionary`2
enabledFilters)
at NHibernate.Impl.SessionImpl.List(CriteriaImpl criteria,
IList results)
at NHibernate.Impl.CriteriaImpl.List(IList results)
at NHibernate.Impl.CriteriaImpl.List()
at NHibernate.Linq.CriteriaResultReader`1.List() in C:\Work
\nhcontrib\trunk\src\NHibernate.Linq\src\NHibernate.Linq
\CriteriaResultReader.cs:line 21
at
NHibernate.Linq.CriteriaResultReader`1.<GetEnumerator>d__0.MoveNext()
in C:\Work\nhcontrib\trunk\src\NHibernate.Linq\src\NHibernate.Linq
\CriteriaResultReader.cs:line 26
at System.Collections.Generic.List`1..ctor(IEnumerable`1
collection)
at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
at LToNHTest.Program.Main(String[] args) in C:\Work\spikes
\ntoltest\LToNHTest\LToNHTest\Program.cs:line 29
at System.AppDomain._nExecuteAssembly(Assembly assembly, String
[] args)
at System.AppDomain.ExecuteAssembly(String assemblyFile,
Evidence assemblySecurity, String[] args)
at
Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
at System.Threading.ThreadHelper.ThreadStart_Context(Object
state)
at System.Threading.ExecutionContext.Run(ExecutionContext
executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart()
InnerException:
I believe my mapping is correct. If I change count to:
Count = p.Childern.Count(),
The query works just fine. I also tried Count = p.Childern.Where(c=>
c.ColumnC == "blah").Count(), and I get the same error.
I'm using the NHibernate 2.1.0, Fluent NHibernate 1.0 and the latest
version of Linq to NHibernate.
Any ideas?
Thanks!
-Matt