我有一个包含多列和一列的数据表,其中存储了一些复杂的文本模式 - 我需要解析该字段以确定特定子字符串是否存在于较大字符串模式中的特定位置,然后是否应将记录过滤为结果。
除了通过使用 String.Split 方法调用、foreach 等编写 C# 解析函数之外,我看不到执行解析的方法。但是如果我尝试像这样解析:
var myFilteredTable = _db.MyTable.Where(t => t.Column1 == 'Filter1'
&& ParseIsMyItemInColumn2(t) );
我收到“没有支持的 SQL 翻译”错误。
我想到的另一个选择是在没有 Parse 的情况下构建初始结果:
var myFilteredTable = _db.MyTable.Where(t => t.Column1 == 'Filter1' );
并遍历 IQueryable 结果集,使用 parse 函数测试每一行,以过滤掉不需要的行,但 IQueryable 没有删除不需要的行的删除函数,也没有添加函数来允许我建立一个新的结果集。
那么当我还需要编写 Parse 函数时,如何在 linq 中进行过滤呢?