SQL CE 4 で NHibernate 3.1 を使用しています (MsSqlCe40Dialect を使用)。Linq を使用してクエリを生成します。
String.Contains、String.StartsWith、または String.EndsWith を使用すると、無効な SQL が生成されます。
例えば:
Session.Query<User>.Where(user => user.Name.Contains("Joe"))
次のような SQL を生成します。
SELECT Name FROM User WHERE (User.Name like ('%'||@p0||'%'))
これは、実際に生成された SQL からいくらか単純化されていますが、問題は余分な部分にあります。'||...||'
これは SQL CE ダイアレクトの問題だと思いますが、ここからどうすればよいかわかりません。修正/回避策のアイデアはありますか?