Ponieważ Google prowadzi mnie do tej strony, sugerowałbym SqlKata , prosty, ale potężny konstruktor SqlQuery, który obsługuje zagnieżdżone warunki, podzapytania i połączenia.
Obecnie obsługuje SqlServer, MySql i PostgreSql
var query = new Query("Users")
.LeftJoin("Countries", "Users.CountryId", "Countries.Id")
.Where("Status", "blocked")
.OrWhereIn("Id", new [] {10, 11, 12})
.OrWhere("LastLogin", ">", DateTime.UtcNow.AddMonths(-5));
Uwaga: jestem jego właścicielem
Różnica między różnymi danymi wyjściowymi kompilatorów
MySql: https://sqlkata.com/playground/mysql?code=var%20query%20=%20new%20Query(%22Posts%22).Limit(10).Offset(20)%3B