【发布时间】:2011-08-12 22:37:55
【问题描述】:
我想了解如何将存储在数据库(由您的应用程序使用)中的定义用于应用程序的源代码。
例子:
数据库
- 汽车
- 汽车类型定义
Cars 列通过外键链接到CarTypeDefinitions 中的一行,因此定义了Cars 中包含的汽车类型。
Cars 包含 'Aston Martin DB8'、'Range Rover' 和 'Mercedes Actros' 等条目。
CarTypeDefinitions 包含 'Sports car'、'SUV' 和 'Truck' 等条目。
源代码
现在我希望能够在我的源代码中使用这些定义。因此,不知何故,我们需要在CarTypeDefinitions 表中的一行和源代码中的(最好)类型安全的实现之间创建某种映射。
一种可能的实现方式
我想到的第一件事(我特别在寻找其他解决方案或对此的反馈)是创建一个EnumECarTypeDefinitions。
public enum ECarTypeDefinitions
{
SportsCar = 1,
SUV = 2,
Truck = 3
}
现在我们有了一个类型安全的Enum,我们可以使用它,例如像这样:
public bool IsSportsCar(Car currentCar)
{
return (currentCar.CarType == ECarTypeDefinitions.SportsCar);
}
该枚举的内容将根据CarTypeDefinitions 表的内容自动生成(为枚举的名称及其整数值添加两个额外的列)。
这也适用于其他方式,例如从ECarTypeDefinitionsEnum 生成CarTypeDefinitions DB 表的内容。
我很想知道如何解决这个问题的其他方法。你是怎么处理的?
【问题讨论】:
-
您所描述的本质上是object relational mapping。我建议从提供的链接开始,然后深入挖掘,最终找出您想要使用哪种 ORM 和您选择的语言。
-
感谢您的指点。我们已经在应用程序开发中使用带有 C# 的 Entity Framework 4.0。虽然 EF 生成对象供我们使用(例如
CarTypeDefinition),但我们仍然需要某种映射,或者您如何知道CarTypeDefinition对象的特定实例描述了一辆跑车?
标签: database enums definition