ResultSet和对象之间有什么区别?

ede*_*dem 2 perl resultset dbix-class

DBIx :: Class :: ResultSet我们读到:

WARNING
If called on an object, proxies to "new_result" instead, so
my $cd = $schema->resultset('CD')->new({ title => 'Spoon' });
will return a CD object, not a ResultSet, and is equivalent to:
my $cd = $schema->resultset('CD')->new_result({ title => 'Spoon' });
Run Code Online (Sandbox Code Playgroud)

有人可以解释对象和ResultSet之间的区别是什么?

nwe*_*hof 5

警告是关于调用newResultSet 对象和ResultSet 类名之间的区别.如果要使用ResultSet构造函数创建新的ResultSet对象,请调用newResultSet包:

my $resultset = DBIx::Class::ResultSet->new(...);
Run Code Online (Sandbox Code Playgroud)

(虽然您通常不必以这种方式创建ResultSet对象.)如果调用newResultSet对象,则不会获得新的ResultSet对象,而是获取相应的结果(行)对象:

my $row = $resultset->new(...);
Run Code Online (Sandbox Code Playgroud)

许多其他Perl类无论new是在类名还是类的对象上调用都没有区别,因此警告.