2009-09-16 6 views
1

私は、Linq2NHibernateが解析し、私が移入したエンティティを返すNHibernateに渡されるlinqクエリを持っています。誰もが "処理されていない式の種類:1004" LinqをNHibernateに使用していますか?

string firstName = "Ryan"; 
Store store = _repository.Query<Store>().Where(x => x.Employees.Select(y => y.FirstName).Contains(firstName)).FirstOrDefault(); 

面倒な部分が持つ従業員を持っている店舗を選択しているこれが何をやるべきのx => x.Employees.Select(Y => y.FirstName).Contains(firstNameの)

ですライアンという名前。

私は「未処理の表現タイプ:1004」旨の上の行にエラーが表示さ

をLinq2NHibernateの制限であり、.Select().Contains()だけで解析できないように私には見えます。

アイデア?誰もがこのエラーを受け取りましたか?それを修正したり回避したりするにはどうすればよいですか?

ここで[EDIT]

は、私が代わりに使用してしまったものです。

string firstName = "Ryan" 
Store store = _repository.Query<Store>().Where(x => x.Employees.Any(y => y.FirstName == firstName)).FirstOrDefault(); 

x => x.Employees.Any(y => y.FirstName == firstName)

答えて

3

私はNHibernateのにLINQを使用していないが、それは私がどこにもそのクエリを作成したいかではないというLINQクエリ。試してみてください:L2NHはstring.Equalsが気に入らない場合は

string firstName = "Ryan"; 
Store store = _repository.Query<Store>() 
         .Where(s => s.Employees.Any(
           e => e.FirstName.Equals(
            firstName, StringComparison.WhateverTypeYouNeed)) 
       ).FirstOrDefault(); 

()、私はかなりあなたは、いくつかのマイナーな改良を私に与えたものを使用

+0

==てみてください。ありがとう。 –

関連する問題