ShadowSql拼接sql可以很简单,非必须的事情都可以不做,非必须的对象也都不构造。
可以不用提前配置,开箱即用。
这里我们示例一下极简模式。
一、极简单表查询
1. SqlQuery极简查询- var users = SimpleDB.From("Users");
- var query = users.ToSqlQuery()
- .Where(users.Field("Id").LessValue(100));
复制代码 我们还可以用这样查询- var query = SimpleDB.From("Users")
- .ToSqlQuery()
- .Where(users => users.Field("Id").LessValue(100));
复制代码 sql: SELECT * FROM [Users] WHERE [Id] users.Field("Id").LessValue(100));[/code]
sql: SELECT * FROM [Users] WHERE [Id] t1.Field("DepartmentId").Equal(t2.Field("Id"))) .WhereLeft(t1 => t1.Field("Age").GreaterValue(30)) .WhereRight(t2 => t2.Field("Manager").EqualValue("CEO"));[/code]- var users = SimpleDB.From("Users");
- var query = users.ToQuery()
- .And(users.Field("Id").LessValue(100));
复制代码
sql: SELECT * FROM [Employees] AS e INNER JOIN [Departments] AS d ON e.[DepartmentId]=d.[Id] WHERE e.[Age]>30 AND d.[Manager]='CEO'- var query = SimpleDB.From("Users")
- .ToQuery()
- .And(users => users.Field("Id").LessValue(100));
复制代码 sql: SELECT * FROM [Employees] AS e INNER JOIN [Departments] AS d ON e.[DepartmentId]=d.[Id] WHERE e.[Age]>30 AND d.[Manager]='CEO'
可以设置别名- var joinOn = SimpleDB.From("Employees").SqlJoin(SimpleDB.From("Departments"))
- .On(static (t1, t2) => t1.Field("DepartmentId").Equal(t2.Field("Id")))
- .WhereLeft(t1 => t1.Field("Age").GreaterValue(30))
- .WhereRight(t2 => t2.Field("Manager").EqualValue("CEO"));
复制代码
2、Query极简联表 - var joinOn = SimpleDB.From("Employees").SqlJoin(SimpleDB.From("Departments"));
- var (t1, t2) = (joinOn.Left, joinOn.Source);
- joinOn.On(t1.Field("DepartmentId").Equal(t2.Field("Id")));
- var joinTable = joinOn.Root
- .Where(t1.Field("Age").GreaterValue(30))
- .Where(t2.Field("Manager").EqualValue("CEO"));
复制代码 sql: SELECT * FROM [Employees] AS t1 INNER JOIN [Departments] AS t2 ON t1.[DepartmentId]=t2.[Id] WHERE t1.[Age]>30 AND t2.[Manager]='CEO'
Query也可以设置别名- var e = SimpleDB.From("Employees").As("e");
- var d = SimpleDB.From("Departments").As("d");
- var joinOn = e.SqlJoin(d)
- .On(e.Field("DepartmentId").Equal(d.Field("Id")));
- var joinTable = joinOn.Root
- .Where(e.Field("Age").GreaterValue(30))
- .Where(d.Field("Manager").EqualValue("CEO"));
复制代码 sql: SELECT * FROM [Employees] AS e INNER JOIN [Departments] AS d ON e.[DepartmentId]=d.[Id] WHERE e.[Age]>30 AND d.[Manager]='CEO'
通过Field查询,既不需要自定义表类型,也不需要给表定义列,就可以畅通无阻的进行sql查询,这也一种不错的选项
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |