我非常高兴地使用 Dapper 构建了一些数据层。当然,维护所需的 SQL 字符串可能是一个问题,尤其是当 db 架构发生更改(重命名列等)时。
我正在寻找一种“删除”大多数 SQL 字符串 blob(不使用 EF 或 Linq)的策略。要么找到/构建一个类型安全的查询 API 来生成 SQL(如 jooq),要么想到某种元生成。
我错过了什么吗?是否有最佳实践或更好的方法?
谢谢
注意:使用 EF 或 Linq 可以解决问题,但我们正在努力尽可能接近 SQL。
我非常高兴地使用 Dapper 构建了一些数据层。当然,维护所需的 SQL 字符串可能是一个问题,尤其是当 db 架构发生更改(重命名列等)时。
我正在寻找一种“删除”大多数 SQL 字符串 blob(不使用 EF 或 Linq)的策略。要么找到/构建一个类型安全的查询 API 来生成 SQL(如 jooq),要么想到某种元生成。
我错过了什么吗?是否有最佳实践或更好的方法?
谢谢
注意:使用 EF 或 Linq 可以解决问题,但我们正在努力尽可能接近 SQL。
我完全同意约翰·吴的观点。存储过程是要走的路。
您可以将存储过程视为一种封装数据库的方式——您的应用程序不需要知道数据是如何存储的,它只需要知道哪些存储过程可用以及它们做什么。
有很多好处:
我敢肯定,有很多我没有提到的原因,还有一些反对使用存储过程的原因。(例如,有人可能会说存储过程允许您将逻辑移动到数据库中,这是放置逻辑的错误位置。我个人不同意这种说法 - 我认为某些逻辑必须在数据库中。)