Skip to content

iquirino/RestSQL

Repository files navigation

RestSQL

Port of: https://github.com/mmrath/rsql-parser

C# Sql Where Clause Parser to be used as Rest Parameters to filter data

This parser is strong using Visitor Pattern: The IExpressionBuilder should be implemented and then call to build:

RestSQL<T>.Parse(query, this);

You can base on our test to implement your own strategy:

var testExpressionBuilder = new TestExpressionBuilder();
testExpressionBuilder.Build("ab > 'DE' and (c = d or d > 4.3) and e>4 or  rere in (20,30,40,50) and defer between 2 and 3 or rerer not in ('432','234324')");

Nuget Package: https://www.nuget.org/packages/RestSQL/

Implemented strategies:

  • SqlKata.QueryBuilder

https://www.nuget.org/packages/RestSQL.SqlKata/

var t = new Query().From("tblLalala").Where("Name", "Igor").Where(c=>c.Where("status","1").OrWhere("status","2"));

var compiler = new Oracle11gCompiler();
var testExpressionBuilder = new SqlKataBuilder();

var q = testExpressionBuilder.Build("ab > 'DE' and (c = d or d > 4.3) and e>4 or  rere in (20,30,40,50) and defer between 2 and 3 or rerer not in ('432','234324')");

var qb = testExpressionBuilder.BuildFrom("ab > 'DE' and (c = d or d > 4.3) and e>4 or  rere in (20,30,40,50) and defer between 2 and 3 or rerer not in ('432','234324')", t);

var sql = compiler.Compile(q.From("MyTable"));
var sqlb = compiler.Compile(qb);
  • NPoco

https://www.nuget.org/packages/RestSQL.NPoco/

var s = new SqlBuilder();
s.Where("ab > 'DE' and (c = d or d > 4.3) and e>4 or  rere in (20,30,40,50) and defer between 2 and 3 or rerer not in ('432','234324')");

var db = new Database("conn");
db.Fetch<User>(template);

About

C# Sql Where Clause Parser to be used as Rest Parameters to filter data. Port of: https://github.com/mmrath/rsql-parser

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published