Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/67.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/11.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# 在数据库中搜索与整个参数或参数的任何部分匹配的名称_C#_Sql_Vb.net_Sql Server 2008_Linq To Sql - Fatal编程技术网

C# 在数据库中搜索与整个参数或参数的任何部分匹配的名称

C# 在数据库中搜索与整个参数或参数的任何部分匹配的名称,c#,sql,vb.net,sql-server-2008,linq-to-sql,C#,Sql,Vb.net,Sql Server 2008,Linq To Sql,欢迎使用C或VB.NET 我正在编写一个查询来选择包含参数任何部分的所有记录 我有一张桌子叫Employees。有些人的名字是这样的:约翰·大卫·克拉克 如果参数为 约翰 约翰·大卫 大卫约翰 姜苦乐 克拉克·约翰 只要参数匹配,我就能得到结果 若我使用的函数包含q.FirstName&&q.LastName.ContainsemployeeName,若employeeName是John Clark,我将不会得到任何结果 函数包含从左到右只查找下一个单词。它一次与一个单词都不匹配 这就是为什么我

欢迎使用C或VB.NET

我正在编写一个查询来选择包含参数任何部分的所有记录

我有一张桌子叫Employees。有些人的名字是这样的:约翰·大卫·克拉克

如果参数为

约翰 约翰·大卫 大卫约翰 姜苦乐 克拉克·约翰 只要参数匹配,我就能得到结果

若我使用的函数包含q.FirstName&&q.LastName.ContainsemployeeName,若employeeName是John Clark,我将不会得到任何结果 函数包含从左到右只查找下一个单词。它一次与一个单词都不匹配

这就是为什么我在Linq to SQL中使用这个:

        Dim employeeName As String
        query = From q In db.Employees _
                Where (q.FirstName & " " & q.LastName).Split(CChar(" ")).Intersect(employeeName.Split(CChar(" "))).Any _
                Select q
我得到了以下错误:

除Contains运算符外,查询运算符的LINQ to SQL实现中不能使用局部序列


是否有其他方法可以查询包含参数任何部分的FirstName和LastName?

这将查找名和姓都与搜索字符串匹配的员工:

        var searchText = "John David Clark";
        var tokens = searchText.Split(null);

        var result = db.Employees
            .Where(arg => tokens.Contains(arg.FirstName) && tokens.Contains(arg.LastName))
            .Select(arg => new { arg.LastName, arg.FirstName })
            .ToList();
        var searchText = "John David Clark";
        var tokens = searchText.Split(null);

        var result = db.Employees
            .Where(arg => tokens.Contains(arg.FirstName) || tokens.Contains(arg.LastName))
            .Select(arg => new { arg.LastName, arg.FirstName })
            .ToList();

这将查找那些姓氏或名与搜索字符串中的任何姓名匹配的员工:

        var searchText = "John David Clark";
        var tokens = searchText.Split(null);

        var result = db.Employees
            .Where(arg => tokens.Contains(arg.FirstName) && tokens.Contains(arg.LastName))
            .Select(arg => new { arg.LastName, arg.FirstName })
            .ToList();
        var searchText = "John David Clark";
        var tokens = searchText.Split(null);

        var result = db.Employees
            .Where(arg => tokens.Contains(arg.FirstName) || tokens.Contains(arg.LastName))
            .Select(arg => new { arg.LastName, arg.FirstName })
            .ToList();