我相信以前有人用不同的词问过这个问题,我已经对类似的问题进行了搜索,发现:
但是,作为主要的 C# 开发人员,我有时会发现很难将以前的语言知识与其他工具(例如 PHP)区分开来。我的理念是遵循语言本身的事实标准。
话虽如此,我已经使用了几个 ORM 工具,例如 Db4objects、DevExpress XPO、EntityFramework 等等。我发现与 CodeIgniter 中 ActiveRecord 实现的 .Net 方法完全不同的是如何使用模型,例如,在 CI 中,您通常会加载一个模型实例并几乎像使用静态方法一样使用它来执行所有操作,然后将某种数据作为参数传递为数组或多个参数:
$this->load->model('User_model');
$this->User_model->save($username, $password);
或者:
$this->load->model('User_model');
$this->User_model->save(array(
'user' => 'theuser',
'password' => 'thepassword'
));
所以你最终会使用同一个实例来执行所有操作,但有时这可能会令人困惑,尤其是来自另一种面向对象的语言,我经常发现自己这样做:
$user = new User_model();
$user->username = 'theusername';
$user->password = 'thepassword';
$user->save();
正如所见,我在实例上调用一个方法来完成实际工作,保存方法如下所示:
function save() {
$this->db->set('username', $this->username);
$this->db->set('username', md5($this->password));
$this->db->insert('User');
}
是否有一些推荐标准可以在 CI 中执行此类操作?我知道肯定有优点和缺点,但我在 CI 文档上没有看到任何关于这个主题的内容。
提前致谢!