FreeSql ORM 教程(二十七)将已写好的 SQL 语句,与实体类映射进行二次查询

449 阅读2分钟

有时候,我们希望将写好的 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
{
    ...
}

系列文章导航

参考资料

《新人学习指引》 | 《Select》 | 《Update》 | 《Insert》 | 《Delete》
《表达式函数》 | 《CodeFirst》 | 《DbFirst》 | 《BaseEntity》
《Repository》 | 《UnitOfWork》 | 《过滤器》 | 《乐观锁》 | 《DbContext》
《读写分离》 | 《分区分表》 | 《租户》 | 《AOP》 | 《黑科技》 | 更新日志