我对NHibernate LINQ contains方法有问题,因为例如,如果我键入以下内容,我想在字符串中转义特殊字符:

lel%lel


我想确切地找到

lel%lel but not lel4325234534lel


要查找值,我使用以下方法:

tabArray = _session.Query<Tab>()
                    .Where(x => x.attr.Contains(query))
                    .ToArray();


我也尝试使用likeexpression,但这也无济于事。

最佳答案

我要说的是,这应该由我们(我们的代码)而不是NHibernate来决定。我们可以这样使用:

How do I escape a percentage sign in T-SQL?

即用%替换C#中的任何[%]

lel[%]lel


这将返回预期的结果

.Where(x => x.attr.Contains(query)) // query == "lel[%]lel"

09-30 08:49