Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#使用Linq进行全文搜索_C#_.net_Linq - Fatal编程技术网

C#使用Linq进行全文搜索

C#使用Linq进行全文搜索,c#,.net,linq,C#,.net,Linq,我想在win forms应用程序中进行全文搜索 public static IEnumerable<DataRow> GetPartDataForFullTextSearch(string text1) { using (cEntity context = new cEntity()) { var query = ( from i in context.tblparts join s in context

我想在win forms应用程序中进行全文搜索

public static IEnumerable<DataRow> GetPartDataForFullTextSearch(string text1)
{
    using (cEntity context = new cEntity())
    {
        var query = (
            from i in context.tblparts
            join s in context.tblpartstatus on i.partstatus
            equals s.id
            join l in context.tblwarehouse on i.partId
            equals l.partId
            join p in context.tblwarehouseplace on l.warehouseId
            equals p.WhId
            orderby i.partID
            select new Part
            {
                PartNumber = i.partID,
                PartName = i.partName,
                OldPartNo = i.partIdOld,
                Comment = i.comment,
                Hbv = (long)i.HBVNr,
                Status = (int)i.partstatus,
                Building = p.building,
                Room = p.room,
                Shelf = p.shelf,
                CaseOfPart = p.case
            }).Distinct() as IEnumerable<DataRow>;

        var results = 
            from matchingItem in query
            where Regex.IsMatch(matchingItem.Field<string>("partName"), text1)
            select matchingItem;

        var list = results.ToList();

        return list;
    }
}
怎么了?
是否可以筛选多个字段?

您不能将
IQueryable
强制转换为
IEnumerable
。取下铸件,然后进行操作

Regex.IsMatch(matchingItem.partName), text1)

您使用哪个O/RM?LINQ到SQL,实体框架,还有其他什么吗?谢谢,但是在删除强制转换之后。。。我收到错误消息“NotSupportedException”?这是因为
Regex.IsMatch
现在被视为查询的一部分,EF(我认为您使用的)无法将其转换为SQL。但是,您可以通过在
Distinct()
之后应用
ToList()
来解决这个问题。
Regex.IsMatch(matchingItem.partName), text1)