我正在做一些项目,我遇到了一些我不知道是否可以解决的问题。所以我的问题是这样的:
我的项目中有 4 个类:
public abstract class ABaseDynamicLayer
{
public virtual int LayerID { get; set; }
public virtual string URIPath { get; set; }
}
public class RasterDynamicLayer : ABaseDynamicLayer
{
}
public class TerrainDynamicLayer : ABaseDynamicLayer
{
}
public class VectorDynamicLayer : ABaseDynamicLayer
{
}
现在我的数据库看起来像这样:
T_DYNAMIC_LAYERS
ID | URIPath | TYPE |
---------------------------
1 | c:\map1.mp | 1 |
2 | c:\map2.mp | 3 |
3 | c:\map5.mp | 2 |
T_TYPES
ID | DESCRIPTION |
---------------------
1 | Raster |
2 | Terrain |
3 | Vector |
现在我的目标是将 T_DYNAMIC_LAYERS 映射到我的项目中,当我这样做时,我不想保存图层的类型,而是想从我的类列表中创建合适的对象作为 T_DYNAMIC_LAYERS 中提到的类型。
例如:
假设我们正在映射 T_DYNAMIC_LAYERS 中的第一行。1)我们将 ID 列映射到 ID 属性。2) 我们将 URIPath Column 映射到 URIPath 到 URIPath 属性。
这很容易,但毕竟想要的结果是我想从第一行获取一个 RasterDynamicLayer 对象,因为该行中的类型是 1(1 等于 RasterDynamicLayer)。
可以做到吗?如果可以做到,我该怎么做?
感谢您的任何帮助!