在LINQ中使用Path.GetFileNameWithoutExtension方法?

时间:2014-10-13 18:40:01

标签: c# linq

我尝试使用以下LINQ语句来获取符合特定条件的文件名:

query.First( f =>
             (f.MD5 == md5 || f.ArchiveFiles.Any(af => af.MD5 == md5))
             && Path.GetFileNameWithoutExtension(f.FileName) == f.GraphicRequest.GraphicName).FileName;

我收到以下错误:

  

System.String GetFileNameWithoutExtension(System.String)'没有受支持的SQL翻译

我试图将已删除其扩展名的数据表中的文件名与另一个字段进行比较。例如,数据库中的文件名可能是" image1.jpg"我想将它与一个值为" image1"的字段进行比较。我以为我可以使用Path.GetFilenameWithoutExtension方法,但这似乎与LINQ无关。

我还有另一种方法可以在LINQ中完成此任务吗?

1 个答案:

答案 0 :(得分:4)

您必须在内存中执行此操作,首先从db获取记录并应用您想要的功能:

query.AsEnumerable().First(...);
顺便说一下,您可能想要使用FirstOrDefault,因为如果没有找到记录,这会抛出异常。