2012-06-29 8 views
5

このLinqクエリを実行すると、 "NotSupportedException"が発生します。 msgstr "指定されたメソッドはサポートされていません。"どんな方法?たとえ "Count()"がコメントアウトされていても、エラーは同じです。ヌル内部例外。linq queryとgroupByを持つNotSupportedException

スタックトレース:

Hydra.WPF.ViewModels.AddressListViewModel._primaryMemberListWorker_DoWork(オブジェクト 送信者、DoWorkEventArgs e)に

M 中:プロジェクト\ \ハイドラ\ WPF \のviewmodels \ AddressListをAddressListViewModel.cs \: System.ComponentModel.BackgroundWorker.WorkerThreadStart(オブジェクト 引数)

SQLクエリで行 1377:

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 

の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); 
+0

どのラインが1377ですか? – walther

+6

Hibernateのlinq実装には、基本演算子に関する問題があります。私は最終的にまともな実装をいつ受けるのだろう... –

+0

1377は、このメソッドを格納するリポジトリメソッドへの呼び出しです。 – Seraph812

答えて

0

あなたの基準変数をどのように作るのですか?これ自体が遅延クエリまたはそれ以外のものであれば、それは起こりうる原因のように思えます。クエリの前にvar criteriaId = criteria.AddressList.Id;を実行し、criteria.AddressList.Idの代わりにクエリにcriteriaIdを指定するとどうなりますか?