【发布时间】:2014-09-28 01:03:55
【问题描述】:
我在我的 UserController 类中有一个过程,可以根据他们的 ID 删除 TUser 类的对象。我想让一个 GenericController 类能够与任何其他类一起执行此操作。这是我的程序:
procedure TUserController.DeleteUser(User: TUser);
begin
if not FManager.IsAttached(User) then
User := FManager.Find<TUser>(User.ID);
FManager.Remove(User);
end;
我试过这样做:
procedure TGenericController.Delete(Class_: TObject; Class_ID: Integer);
begin
if not FManager.IsAttached(Class_) then
Class_ := FManager.Find<Tclass(Class_)>(Class_ID);
FManager.Remove(Class_);
end;
但我收到此错误:
[dcc32 Error] GenericController.pas(36): E2531 Method 'Find' requires explicit type argument(s)
这是从 TMS Aurelius 中查找的方法:
function TObjectManager.Find<E>(IdValue: Variant): E;
begin
Result := E(Find(TClass(E), IdValue));
end;
【问题讨论】:
标签: delphi orm procedure rtti tms