有时候,我们希望将写好的 sql 语句,甚至是存储过程进行查询,虽然效率不高(有时候并不是效率至上)。
巧用AsTable
var sql = fsql.Select<User>()
.AsTable((a, b) => "(select * from user where clicks > 10)")
.Page(1, 10)
.ToList()
v1.0.1 ISelect 增加 WithSql("select * from user ...") 功能快速代理此方法
本身 AsTable 是用来进行分表分库的,后续我们会接着讲。
友情提醒:当开启了自动同步结构功能,UserX 可能不需要同步,怎么办?请移步《实体特性》文章说明。
当【实体类】对应的是数据库【视图】或者其他时,可通过 [Table(DisableSyncStructure = true)] 禁用指定的实体迁移操作。
[Table(DisableSyncStructure = true)]
class UserX
{
...
}
系列文章导航
-
(二十七)将已写好的 SQL 语句,与实体类映射进行二次查询
参考资料
| 《新人学习指引》 | 《Select》 | 《Update》 | 《Insert》 | 《Delete》 | |
| 《表达式函数》 | 《CodeFirst》 | 《DbFirst》 | 《BaseEntity》 | |
| 《Repository》 | 《UnitOfWork》 | 《过滤器》 | 《乐观锁》 | 《DbContext》 | |
| 《读写分离》 | 《分区分表》 | 《租户》 | 《AOP》 | 《黑科技》 | 更新日志 |