Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.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
ASP.NET动态Linq搜索 var query=(来自结果中的u) 选择u).AsQueryable(); //构建where子句 如果(!string.IsNullOrEmpty(userRequest.searchData)) { if(userRequest.searchBy==“LastName”) { var likestr=userRequest.searchData.Trim(); query=(从查询中的n开始,其中n.StartsWith(likestr)选择n); } if(userRequest.searchBy==“FirstName”) { } if(userRequest.searchBy==“电子邮件”) { //var likestr=string.Format(“%{0}%”,userRequest.searchData.Trim()); } if(userRequest.searchBy==“UserId”) { query=query.Where(x=>SqlMethods.Equals(x.UserId,Convert.ToInt32(userRequest.searchData)); } }_Asp.net_Linq_Dynamic_Like Keyword - Fatal编程技术网

ASP.NET动态Linq搜索 var query=(来自结果中的u) 选择u).AsQueryable(); //构建where子句 如果(!string.IsNullOrEmpty(userRequest.searchData)) { if(userRequest.searchBy==“LastName”) { var likestr=userRequest.searchData.Trim(); query=(从查询中的n开始,其中n.StartsWith(likestr)选择n); } if(userRequest.searchBy==“FirstName”) { } if(userRequest.searchBy==“电子邮件”) { //var likestr=string.Format(“%{0}%”,userRequest.searchData.Trim()); } if(userRequest.searchBy==“UserId”) { query=query.Where(x=>SqlMethods.Equals(x.UserId,Convert.ToInt32(userRequest.searchData)); } }

ASP.NET动态Linq搜索 var query=(来自结果中的u) 选择u).AsQueryable(); //构建where子句 如果(!string.IsNullOrEmpty(userRequest.searchData)) { if(userRequest.searchBy==“LastName”) { var likestr=userRequest.searchData.Trim(); query=(从查询中的n开始,其中n.StartsWith(likestr)选择n); } if(userRequest.searchBy==“FirstName”) { } if(userRequest.searchBy==“电子邮件”) { //var likestr=string.Format(“%{0}%”,userRequest.searchData.Trim()); } if(userRequest.searchBy==“UserId”) { query=query.Where(x=>SqlMethods.Equals(x.UserId,Convert.ToInt32(userRequest.searchData)); } },asp.net,linq,dynamic,like-keyword,Asp.net,Linq,Dynamic,Like Keyword,首先,我查询数据库并存储在var查询中 然后,如果有搜索数据,我将尝试使用1或4个可能的搜索在Where子句上添加 帮助?我会改用.Contains。不要试图用Linq模仿SQL行为。您获得了一个列表,可以基于对象方法查询此列表 请尝试以下方法: var query = (from u in results select u).AsQueryable(); //Build where clause if (!string.IsNullOrEmpty(userReque

首先,我查询数据库并存储在var查询中

然后,如果有搜索数据,我将尝试使用1或4个可能的搜索在Where子句上添加


帮助?

我会改用.Contains。

不要试图用Linq模仿SQL行为。您获得了一个列表,可以基于对象方法查询此列表

请尝试以下方法:

var query = (from u in results select u).AsQueryable(); //Build where clause if (!string.IsNullOrEmpty(userRequest.searchData)) { if (userRequest.searchBy == "LastName") { var likestr = userRequest.searchData.Trim(); query = (from n in query where n.StartsWith(likestr) select n).AsQueryable(); } if (userRequest.searchBy == "FirstName") { } if (userRequest.searchBy == "Email") { //var likestr = string.Format("%{0}%", userRequest.searchData.Trim()); } if (userRequest.searchBy == "UserId") { query = query.Where(x => SqlMethods.Equals(x.UserId, Convert.ToInt32(userRequest.searchData))); } }
只需根据需要添加到查询中即可。您可以将多个where子句链接到它上,它们将依次执行

//Query ID
1
//Query Firstname
1
2
5

etc

为什么不试一试

他只想要以uservalue开头的名字。我用一个更完整的例子编辑了我的答案。你应该接电话。始终使用标准方法,而不是任何sql方法。因此,对于上面示例中的电子邮件,包含、.equals,用于比较对象、startswith等。顺便说一句,查询的结果是可查询的,因此不需要转换。很好,现在orderby子句怎么样了?var sortColumnBy=userRequest.sortColumn;var orderedQuery=query.OrderBy(x=>x.AttributeBag[sortColumnBy]+“”+userRequest.sortType)
//Query ID
1
//Query Firstname
1
2
5
var query = (from u in results select u);

if (!string.IsNullOrEmpty(userRequest.searchData))
{
    if (userRequest.searchBy == "LastName")
    {
        var likestr = userRequest.searchData.Trim();
        query = (from n in query where n.LastName.StartsWith(likestr) select n);
    }
    if (userRequest.searchBy == "UserId")
    {
        var userId = Convert.ToInt32(userRequest.searchData);
        query = (from n in query where n.UserId == userId select n);
    }