The incoming request has too many parameters. The server supports a maximum of 2100 parameters

后端 未结 6 1139
野性不改
野性不改 2020-12-16 10:33

I have this seemingly simple linq-to-sql query that searches some data in several columns; something like this:

List TheTableIDs = list of IDs (s         


        
6条回答
  •  小蘑菇
    小蘑菇 (楼主)
    2020-12-16 11:29

    Use 2 where clauses:

    List TheTableIDs = list of IDs (sometimes more than 2100)
    
    var _QueryOutput = (from x in TheDataContext.SomeTable
        where x.Col1.Contains(SomeString) || x.Col2.Contains(SomeString))
        select x.ID).ToList();
    
    var QueryOutput = _QueryOutput.Where(w => TheTableIDs.Contains(w)).ToList();
    

    For efficiency, you could refactor the code so it only does it this way if list contains more than 2000:

    if (TheTableIDs.Count() > 2000)
       // Code Here
    else
       // Code Here
    

提交回复
热议问题