带有linq查询和groupBy的NotSupportedException

Ser*_*812 5 c# nhibernate linq-to-nhibernate

运行此Linq查询时,我收到"NotSupportedException"."不支持指定的方法." 什么方法?即使将"Count()"注释掉,错误也是一样的.空内部异常.

堆栈跟踪:

在Hydra.WPF.ViewModels.AddressListViewModel._primaryMemberListWorker_DoWork(对象发件人,DoWorkEventArgs e)在M:\项目\水润\ WPF \的ViewModels\AddressList中\ AddressListViewModel.cs:在System.ComponentModel.BackgroundWorker.WorkerThreadStart线1377(Object参数)

SQL查询:

Select * From _Members
Inner Join AddressDetailsCCN a on a.MemberId=_Members.MemberID
Inner Join 
  (
  Select Address+Address2 as CombinedAddress 
  From AddressDetailsCCN Where ListId=84 
  group by Address+Address2
  Having COUNT(*)>1
  ) B on B.CombinedAddress=A.Address+A.Address2
Where CombinedAddress is not null AND CombinedAddress!='' AND a.ListId=84
Order by ClientID, CombinedAddress
Run Code Online (Sandbox Code Playgroud)

LINQ:

var grouped = 
   (from mem in session.Query<Member>()
    join detail in session.Query<Detail>() on mem.Id equals detail.Member.Id
    join d2 in (from d3 in session.Query<Detail>()
                where d3.AddressList.Id == criteria.AddressList.Id
                group d3 by d3.Address + d3.Address2 into x
                where x.Count() > 1
                select x) on detail.Address+detail.Address2 equals d2.Key
    where detail.AddressList.Id==criteria.AddressList.Id
    select mem);
Run Code Online (Sandbox Code Playgroud)

Mit*_*hon 0

你如何产生你的标准变量?如果这本身就是一个延迟查询或其他问题,那么它听起来可能是罪魁祸首。如果您在查询之前执行 avar criteriaId = criteria.AddressList.Id;操作,并向查询提供 criteriaId 而不是 criteria.AddressList.Id,会发生什么情况?