在我的数据库中,我有一个包含文件名模式的表。
数据库中的模式:
PKO??_??_??????_*.TXT
文件名:
PKO10_11_123456_example.TXT现在,当一些文件被导入到我的程序中时,我需要将其与数据库中的这些模式进行匹配。我知道Directory.GetFiles()有一个添加模式的选项,它会返回与该模式匹配的所有文件。有没有办法在LINQ query中做到这一点?我尝试了Containes(),如下所示:
var _cardType = (from type in context.OCA_CARD_TYPEs
where type.FILENAME.ToLower().Contains(fileName.ToLower())
select type).Single();但就像这样,我没有得到任何匹配。
发布于 2011-06-28 16:36:13
where System.Data.Linq.SqlClient.SqlMethods.Like(
type.FILENAME.ToUpper(), filename, '\\')使用filename作为@"PKO__\___\_______\_%.TXT"
注意,代码是文字代码(通过我们指定的\字符进行转义)- _和%是分别类似于?和< \_ >d12\>的代码通配符。
发布于 2011-06-28 16:35:05
我不认为?是Transact-SQL中的占位符。要匹配单个字符,请使用_。然后,您还需要转义下划线。我不知道L2S或L2E在这件事上是怎么表现的。
More
https://stackoverflow.com/questions/6503694
复制相似问题