3

我正在尝试提出实现SQL 数据服务灵活实体模型的“最佳”方法,其中每个类都可以存储为实体,甚至是派生类。

示例:每个子类都有不同的

string Id
string Kind
Dictionary<string, object> Properties

到目前为止,我正朝着同时拥有实体类(如上)和具有某种集合的基类的方向前进,例如

Dictionary<string, Entity> data

并让每个子类添加到该字典中,然后获取/设置属性,例如

data["EntityKind"].Properties["PropertyName"]

但是,由于每个类只有一个实体,所以似乎我应该使用某种堆栈(而不是字典),其中层次结构的每一级都知道它在哪里。然后我想到类继承就是堆栈,所以我想也许我只是错过了一些可以真正简化所有这些的巨大的 OO 概念。就像是

abstract eachsubclassmusthaveitsown Entity entity
4

1 回答 1

3

每个类都是一个实体,你想关联一些实体元数据吗?

听起来属性可能是你最好的选择。

您将定义一个类EntityAttribute,其中包含用于存储描述实体所需的元数据的成员。这将允许您使用 [Entity] 标记实体类。如果所有字段都是必需的,则为属性类提供一个要求传递值的构造函数。

然后使用反射来发现实体类。请注意,您只需要执行一次该发现过程然后将其缓存,因此反射的性能应该不是问题。

于 2009-03-05T20:24:59.020 回答