Hi, my problem is born when I go to make a semolina query where I have to return a list containing a string. The quety is as follows
(from s in context. Action
where s.Nome.Contains (query)
orderby s.Name
select string.Format ("{0} | {1}", new JavaScriptSerializer (). Serialize (s), s.Name)). Distinct (). Take (limit);
Can someone help me?
error linq query Contains string
Re: error linq query Contains string
Try this code:
If this doesn't help, specify:
1) your ORM framework (EF Core, etc)
2) the exact text of the error with its full stack trace
Code: Select all
var query = (from s in context. Action
where s.Nome.Contains (query)
orderby s.Name
select s). Distinct (). Take (limit).ToList();
var result = query.Select(s => string.Format ("{0} | {1}", new JavaScriptSerializer (). Serialize (s), s.Name)));
1) your ORM framework (EF Core, etc)
2) the exact text of the error with its full stack trace
Re: error linq query Contains string
ERROR:
statusCode: 500
statusText: Internal Server Error
responseData: {"Message":"Only arguments that can be evaluated on the client are supported for the String.StartsWith method.","StackTrace":" in Devart.Data.PostgreSql.Linq.Engine.PgSqlMethodCallConverter.\u003c\u003ec__DisplayClass36.a(SqlFactory A_0, IList`1 A_1, Type A_2)\r\n in Devart.Data.Linq.Engine.DbMethodCallConverter.a(List`1 A_0, List`1 A_1, List`1 A_2, Type A_3, Object A_4)\r\n in Devart.Data.Linq.Engine.DbMethodCallConverter.b(c4 A_0)\r\n in Devart.Data.Linq.Engine.SqlVisitor.g(SqlExpression A_0)\r\n in Devart.Data.Linq.Engine.SqlVisitor.h(SqlSelect A_0)\r\n in Devart.Data.Linq.Engine.DbMethodCallConverter.e(SqlSelect A_0)\r\n in Devart.Data.Linq.Engine.DbMethodCallConverter.a(h A_0)\r\n in Devart.Data.Linq.Engine.SqlVisitor.h(SqlSelect A_0)\r\n in Devart.Data.Linq.Engine.DbMethodCallConverter.e(SqlSelect A_0)\r\n in Devart.Data.Linq.Engine.DbMethodCallConverter.a(h A_0)\r\n in Devart.Data.Linq.Engine.SqlVisitor.b(SqlJoin A_0)\r\n in Devart.Data.Linq.Engine.SqlVisitor.b(SqlJoin A_0)\r\n in Devart.Data.Linq.Engine.SqlVisitor.b(SqlJoin A_0)\r\n in Devart.Data.Linq.Engine.SqlVisitor.h(SqlSelect A_0)\r\n in Devart.Data.Linq.Engine.DbMethodCallConverter.e(SqlSelect A_0)\r\n in Devart.Data.Linq.Engine.DbMethodCallConverter.a(h A_0)\r\n in Devart.Data.Linq.Engine.SqlVisitor.h(SqlSelect A_0)\r\n in Devart.Data.Linq.Engine.DbMethodCallConverter.e(SqlSelect A_0)\r\n in Devart.Data.Linq.Engine.DbMethodCallConverter.a(h A_0)\r\n in Devart.Data.Linq.Engine.SqlVisitor.h(SqlSelect A_0)\r\n in Devart.Data.Linq.Engine.DbMethodCallConverter.e(SqlSelect A_0)\r\n in Devart.Data.Linq.Engine.DbMethodCallConverter.a(h A_0)\r\n in Devart.Data.Linq.Engine.cy.a(SqlNode A_0, ResultShape\u0026 A_1)\r\n in Devart.Data.Linq.Engine.cy.d(Expression A_0)\r\n in Devart.Data.Linq.Engine.cy.f(Expression A_0)\r\n in Devart.Data.Linq.CompiledQuery.a(IProvider A_0)\r\n in Devart.Data.Linq.CompiledQuery.a(DataContext A_0, Object[] A_1)\r\n in Devart.Data.Linq.CompiledQuery.Invoke[a,b,c,d](a A_0, b A_1, c A_2)\r\n in ICACODE.Web.Services.AutocompleteHandler.GetAutocompleteResults(Func`4 cq, String query, Int32 limit) in C:\\Users\\Matteo\\Documents\\Visual Studio 2017\\Projects\\Crediti08\\IcaCode_TEST\\ICACODE\\ICACODE.Web\\Services\\AutocompleteHandler.asmx.cs:riga 41\r\n in ICACODE.Web.Services.AutocompleteHandler.ProcessRequest(String scope, String query, Int32 limit) in C:\\Users\\Matteo\\Documents\\Visual Studio 2017\\Projects\\Crediti08\\IcaCode_TEST\\ICACODE\\ICACODE.Web\\Services\\AutocompleteHandler.asmx.cs:riga 27","ExceptionType":"System.NotSupportedException"}
responseHeaders: date: Tue, 19 Feb 2019 22:03:18 GMT
server: Microsoft-IIS/10.0
x-aspnet-version: 4.0.30319
x-powered-by: ASP.NET
content-type: application/json; charset=utf-8
cache-control: private
x-sourcefiles: =?UTF-8?B?QzpcVXNlcnNcTWF0dGVvXERvY3VtZW50c1xWaXN1YWwgU3R1ZGlvIDIwMTdcUHJvamVjdHNcQ3JlZGl0aTA4XEljYUNvZGVfVEVTVFxJQ0FDT0RFXElDQUNPREUuV2ViXFNlcnZpY2VzXEF1dG9jb21wbGV0ZUhhbmRsZXIuYXNteFxQcm9jZXNzUmVxdWVzdA==?=
jsonerror: true
content-length: 2636
jsonError: true
Message: Only arguments that can be evaluated on the client are supported for the String.StartsWith method.
StackTrace: in Devart.Data.PostgreSql.Linq.Engine.PgSqlMethodCallConverter.<>c__DisplayClass36.a(SqlFactory A_0, IList`1 A_1, Type A_2)
in Devart.Data.Linq.Engine.DbMethodCallConverter.a(List`1 A_0, List`1 A_1, List`1 A_2, Type A_3, Object A_4)
in Devart.Data.Linq.Engine.DbMethodCallConverter.b(c4 A_0)
in Devart.Data.Linq.Engine.SqlVisitor.g(SqlExpression A_0)
in Devart.Data.Linq.Engine.SqlVisitor.h(SqlSelect A_0)
in Devart.Data.Linq.Engine.DbMethodCallConverter.e(SqlSelect A_0)
in Devart.Data.Linq.Engine.DbMethodCallConverter.a(h A_0)
in Devart.Data.Linq.Engine.SqlVisitor.h(SqlSelect A_0)
in Devart.Data.Linq.Engine.DbMethodCallConverter.e(SqlSelect A_0)
in Devart.Data.Linq.Engine.DbMethodCallConverter.a(h A_0)
in Devart.Data.Linq.Engine.SqlVisitor.b(SqlJoin A_0)
in Devart.Data.Linq.Engine.SqlVisitor.b(SqlJoin A_0)
in Devart.Data.Linq.Engine.SqlVisitor.b(SqlJoin A_0)
in Devart.Data.Linq.Engine.SqlVisitor.h(SqlSelect A_0)
in Devart.Data.Linq.Engine.DbMethodCallConverter.e(SqlSelect A_0)
in Devart.Data.Linq.Engine.DbMethodCallConverter.a(h A_0)
in Devart.Data.Linq.Engine.SqlVisitor.h(SqlSelect A_0)
in Devart.Data.Linq.Engine.DbMethodCallConverter.e(SqlSelect A_0)
in Devart.Data.Linq.Engine.DbMethodCallConverter.a(h A_0)
in Devart.Data.Linq.Engine.SqlVisitor.h(SqlSelect A_0)
in Devart.Data.Linq.Engine.DbMethodCallConverter.e(SqlSelect A_0)
in Devart.Data.Linq.Engine.DbMethodCallConverter.a(h A_0)
in Devart.Data.Linq.Engine.cy.a(SqlNode A_0, ResultShape& A_1)
in Devart.Data.Linq.Engine.cy.d(Expression A_0)
in Devart.Data.Linq.Engine.cy.f(Expression A_0)
in Devart.Data.Linq.CompiledQuery.a(IProvider A_0)
in Devart.Data.Linq.CompiledQuery.a(DataContext A_0, Object[] A_1)
in Devart.Data.Linq.CompiledQuery.Invoke[a,b,c,d](a A_0, b A_1, c A_2)
in ICACODE.Web.Services.AutocompleteHandler.GetAutocompleteResults(Func`4 cq, String query, Int32 limit) in C:\Users\Matteo\Documents\Visual Studio 2017\Projects\Crediti08\IcaCode_TEST\ICACODE\ICACODE.Web\Services\AutocompleteHandler.asmx.cs:riga 41
in ICACODE.Web.Services.AutocompleteHandler.ProcessRequest(String scope, String query, Int32 limit) in C:\Users\Matteo\Documents\Visual Studio 2017\Projects\Crediti08\IcaCode_TEST\ICACODE\ICACODE.Web\Services\AutocompleteHandler.asmx.cs:riga 27
ExceptionType: System.NotSupportedException
statusCode: 500
statusText: Internal Server Error
responseData: {"Message":"Only arguments that can be evaluated on the client are supported for the String.StartsWith method.","StackTrace":" in Devart.Data.PostgreSql.Linq.Engine.PgSqlMethodCallConverter.\u003c\u003ec__DisplayClass36.a(SqlFactory A_0, IList`1 A_1, Type A_2)\r\n in Devart.Data.Linq.Engine.DbMethodCallConverter.a(List`1 A_0, List`1 A_1, List`1 A_2, Type A_3, Object A_4)\r\n in Devart.Data.Linq.Engine.DbMethodCallConverter.b(c4 A_0)\r\n in Devart.Data.Linq.Engine.SqlVisitor.g(SqlExpression A_0)\r\n in Devart.Data.Linq.Engine.SqlVisitor.h(SqlSelect A_0)\r\n in Devart.Data.Linq.Engine.DbMethodCallConverter.e(SqlSelect A_0)\r\n in Devart.Data.Linq.Engine.DbMethodCallConverter.a(h A_0)\r\n in Devart.Data.Linq.Engine.SqlVisitor.h(SqlSelect A_0)\r\n in Devart.Data.Linq.Engine.DbMethodCallConverter.e(SqlSelect A_0)\r\n in Devart.Data.Linq.Engine.DbMethodCallConverter.a(h A_0)\r\n in Devart.Data.Linq.Engine.SqlVisitor.b(SqlJoin A_0)\r\n in Devart.Data.Linq.Engine.SqlVisitor.b(SqlJoin A_0)\r\n in Devart.Data.Linq.Engine.SqlVisitor.b(SqlJoin A_0)\r\n in Devart.Data.Linq.Engine.SqlVisitor.h(SqlSelect A_0)\r\n in Devart.Data.Linq.Engine.DbMethodCallConverter.e(SqlSelect A_0)\r\n in Devart.Data.Linq.Engine.DbMethodCallConverter.a(h A_0)\r\n in Devart.Data.Linq.Engine.SqlVisitor.h(SqlSelect A_0)\r\n in Devart.Data.Linq.Engine.DbMethodCallConverter.e(SqlSelect A_0)\r\n in Devart.Data.Linq.Engine.DbMethodCallConverter.a(h A_0)\r\n in Devart.Data.Linq.Engine.SqlVisitor.h(SqlSelect A_0)\r\n in Devart.Data.Linq.Engine.DbMethodCallConverter.e(SqlSelect A_0)\r\n in Devart.Data.Linq.Engine.DbMethodCallConverter.a(h A_0)\r\n in Devart.Data.Linq.Engine.cy.a(SqlNode A_0, ResultShape\u0026 A_1)\r\n in Devart.Data.Linq.Engine.cy.d(Expression A_0)\r\n in Devart.Data.Linq.Engine.cy.f(Expression A_0)\r\n in Devart.Data.Linq.CompiledQuery.a(IProvider A_0)\r\n in Devart.Data.Linq.CompiledQuery.a(DataContext A_0, Object[] A_1)\r\n in Devart.Data.Linq.CompiledQuery.Invoke[a,b,c,d](a A_0, b A_1, c A_2)\r\n in ICACODE.Web.Services.AutocompleteHandler.GetAutocompleteResults(Func`4 cq, String query, Int32 limit) in C:\\Users\\Matteo\\Documents\\Visual Studio 2017\\Projects\\Crediti08\\IcaCode_TEST\\ICACODE\\ICACODE.Web\\Services\\AutocompleteHandler.asmx.cs:riga 41\r\n in ICACODE.Web.Services.AutocompleteHandler.ProcessRequest(String scope, String query, Int32 limit) in C:\\Users\\Matteo\\Documents\\Visual Studio 2017\\Projects\\Crediti08\\IcaCode_TEST\\ICACODE\\ICACODE.Web\\Services\\AutocompleteHandler.asmx.cs:riga 27","ExceptionType":"System.NotSupportedException"}
responseHeaders: date: Tue, 19 Feb 2019 22:03:18 GMT
server: Microsoft-IIS/10.0
x-aspnet-version: 4.0.30319
x-powered-by: ASP.NET
content-type: application/json; charset=utf-8
cache-control: private
x-sourcefiles: =?UTF-8?B?QzpcVXNlcnNcTWF0dGVvXERvY3VtZW50c1xWaXN1YWwgU3R1ZGlvIDIwMTdcUHJvamVjdHNcQ3JlZGl0aTA4XEljYUNvZGVfVEVTVFxJQ0FDT0RFXElDQUNPREUuV2ViXFNlcnZpY2VzXEF1dG9jb21wbGV0ZUhhbmRsZXIuYXNteFxQcm9jZXNzUmVxdWVzdA==?=
jsonerror: true
content-length: 2636
jsonError: true
Message: Only arguments that can be evaluated on the client are supported for the String.StartsWith method.
StackTrace: in Devart.Data.PostgreSql.Linq.Engine.PgSqlMethodCallConverter.<>c__DisplayClass36.a(SqlFactory A_0, IList`1 A_1, Type A_2)
in Devart.Data.Linq.Engine.DbMethodCallConverter.a(List`1 A_0, List`1 A_1, List`1 A_2, Type A_3, Object A_4)
in Devart.Data.Linq.Engine.DbMethodCallConverter.b(c4 A_0)
in Devart.Data.Linq.Engine.SqlVisitor.g(SqlExpression A_0)
in Devart.Data.Linq.Engine.SqlVisitor.h(SqlSelect A_0)
in Devart.Data.Linq.Engine.DbMethodCallConverter.e(SqlSelect A_0)
in Devart.Data.Linq.Engine.DbMethodCallConverter.a(h A_0)
in Devart.Data.Linq.Engine.SqlVisitor.h(SqlSelect A_0)
in Devart.Data.Linq.Engine.DbMethodCallConverter.e(SqlSelect A_0)
in Devart.Data.Linq.Engine.DbMethodCallConverter.a(h A_0)
in Devart.Data.Linq.Engine.SqlVisitor.b(SqlJoin A_0)
in Devart.Data.Linq.Engine.SqlVisitor.b(SqlJoin A_0)
in Devart.Data.Linq.Engine.SqlVisitor.b(SqlJoin A_0)
in Devart.Data.Linq.Engine.SqlVisitor.h(SqlSelect A_0)
in Devart.Data.Linq.Engine.DbMethodCallConverter.e(SqlSelect A_0)
in Devart.Data.Linq.Engine.DbMethodCallConverter.a(h A_0)
in Devart.Data.Linq.Engine.SqlVisitor.h(SqlSelect A_0)
in Devart.Data.Linq.Engine.DbMethodCallConverter.e(SqlSelect A_0)
in Devart.Data.Linq.Engine.DbMethodCallConverter.a(h A_0)
in Devart.Data.Linq.Engine.SqlVisitor.h(SqlSelect A_0)
in Devart.Data.Linq.Engine.DbMethodCallConverter.e(SqlSelect A_0)
in Devart.Data.Linq.Engine.DbMethodCallConverter.a(h A_0)
in Devart.Data.Linq.Engine.cy.a(SqlNode A_0, ResultShape& A_1)
in Devart.Data.Linq.Engine.cy.d(Expression A_0)
in Devart.Data.Linq.Engine.cy.f(Expression A_0)
in Devart.Data.Linq.CompiledQuery.a(IProvider A_0)
in Devart.Data.Linq.CompiledQuery.a(DataContext A_0, Object[] A_1)
in Devart.Data.Linq.CompiledQuery.Invoke[a,b,c,d](a A_0, b A_1, c A_2)
in ICACODE.Web.Services.AutocompleteHandler.GetAutocompleteResults(Func`4 cq, String query, Int32 limit) in C:\Users\Matteo\Documents\Visual Studio 2017\Projects\Crediti08\IcaCode_TEST\ICACODE\ICACODE.Web\Services\AutocompleteHandler.asmx.cs:riga 41
in ICACODE.Web.Services.AutocompleteHandler.ProcessRequest(String scope, String query, Int32 limit) in C:\Users\Matteo\Documents\Visual Studio 2017\Projects\Crediti08\IcaCode_TEST\ICACODE\ICACODE.Web\Services\AutocompleteHandler.asmx.cs:riga 27
ExceptionType: System.NotSupportedException
Re: error linq query Contains string
Please use some string literal instead of the query itself.where s.Nome.Contains(query)
Re: error linq query Contains string
(from s in context.Azione
where s.Nome.Contains("fir")
orderby s.Nome
select string.Format("{0}|{1}", new JavaScriptSerializer().Serialize(s), s.Nome)).Distinct().Take(limit)
this is the query Linq. In the web application with SQLServer i haven't problem, in the web application with devart and PostgreSQL return error?????
where s.Nome.Contains("fir")
orderby s.Nome
select string.Format("{0}|{1}", new JavaScriptSerializer().Serialize(s), s.Nome)).Distinct().Take(limit)
this is the query Linq. In the web application with SQLServer i haven't problem, in the web application with devart and PostgreSQL return error?????
Re: error linq query Contains string
Please materialize the query with .ToList(). After this, apply your serializer:
Code: Select all
var query = (from s in context. Action
where s.Nome.Contains ("fir")
orderby s.Nome
select s). Distinct (). Take (limit).ToList();
var result = query.Select(s => string.Format ("{0} | {1}", new JavaScriptSerializer (). Serialize (s), s.Nome)));