C#SQL到LINQ模式匹配

时间:2011-06-28 08:31:03

标签: c# sql linq

在我的数据库中,我有一个包含文件名模式的表。

数据库中的模式:

PKO??_??_??????_*.TXT

文件名:

PKO10_11_123456_example.TXT

现在当某个文件被导入我的程序时,我需要将它与数据库中的这些模式进行匹配。我知道Directory.GetFiles()有这个选项来添加模式,它会返回与这个模式匹配的所有文件。有没有办法在LINQ查询中做到这一点?我试过Containes()这样:

 var _cardType = (from type in context.OCA_CARD_TYPEs
     where type.FILENAME.ToLower().Contains(fileName.ToLower())
     select type).Single();

但就像我没有得到任何匹配。

2 个答案:

答案 0 :(得分:2)

where System.Data.Linq.SqlClient.SqlMethods.Like(
         type.FILENAME.ToUpper(), filename, '\\')

filename@"PKO__\___\_______\_%.TXT"

并注意\_文字 _(通过我们指定的\字符转义) - _和{{ 1}} %通配符分别类似于LIKE?

答案 1 :(得分:0)

我不认为?是Transact-SQL中的占位符。要匹配单个字符,请使用_。然后你还需要逃避你的下划线。我不知道L2S或L2E在这方面的表现如何。

More