目前我为 DWScript + SQLite 编写了一个 ORM 映射。我已经成功实现了普通属性(如字符串或整数)的映射,但现在我想添加外键和多对多关系。为此,我计划在 A 类中声明外键属性,然后在运行时向 B 类添加一个关系管理器,以对关系进行建模。我知道我可以将关系管理器放在源代码的 B 类中,但想象一下,如果我的应用程序中有一些模型具有用户模型的外键,并在框架中声明。为每个新应用程序修改框架是不切实际的。
我的问题:如何在脚本运行时向对象/类添加新属性、字段或函数?
这里有一些解释代码:
type TClassB = class;
type TRelationManager = class end; // a class which controls the access to the relation, only a stub
type
[XORM_ForeignKey('LinkB')] //attribute to indicate property "LinkB" as Foreign Key
TClassA = class(TBaseModel)
private
FLinkB : TClassB;
published
property LinkB : TClassB; //Foreign Key to TClassB
end;
TClassB = class(TBaseModel)
private
published
// This field should be added at runtime and not directly in the source code, as shown here.
RelationManager : TRelationManager;
end;