3

我目前正在对 DBIx::Class 进行一些研究,以便从 Class::DBI 迁移我当前的应用程序。老实说,在配置结果类时,我对 DBIx::Class 有点失望,使用 Class::DBI 我可以在模型上设置元数据,只需在没有代码生成器的情况下调用 on 函数等等我的问题是。 ..我可以与 DBIX::Class 做同样的事情吗?似乎 DBIx::Class 不支持客户端触发器,或者我没有查看错误的文档?

4

1 回答 1

5

$self->next::method()可以通过在 Result 类中重新定义适当的方法(new/create/update/delete 等)并在代码之前或之后调用其中的父级(通过)来实现触发器。诚然,与 Class::DBI 中的前/后触发器相比,它有点笨拙。

至于元数据-您是在谈论对象上的临时列吗?即不会存储在数据库行中的数据。这些可以使用 CPAN 上的 Class::Accessor::* 模块之一轻松添加

从 CDBI 切换到 DBIC 时,最难做出的改变之一是从 ResultSets 的角度来考虑——通常通过 CDBI 中的 Class 方法实现的东西变成了 ResultSet 上的方法——并且代码可能需要大量重构,它是并不总是从一个到另一个的直接转换。

于 2010-07-14T09:27:43.393 回答