我正在使用 NHibernate 3.1 和 SQL CE 4(使用 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 方言的问题,但我不确定从这里去哪里。有关修复/解决方法的任何想法?