我有一个由外部供应商创建的表,它将多个测量数据实例存储在与此类似的单行中。
Units AS Table
(
UnitId INT,
Measurement1_Date DATETIME NULL,
Measurement1_Value NUMERIC NULL,
Measurement2_Date DATETIME NULL,
Measurement2_Value NUMERIC NULL,
Measurement3_Date DATETIME NULL,
Measurement3_Value NUMERIC NULL
)
(假设此示例中没有显示其他字段)
在进行测量时,行会更新。
由于该系统被集成到我们的生产车间流程中的方式,因此不会以任何方式进行标准化。如果他们决定需要进行第4次测量,他们将扩展模式并在表格中添加新字段。
我使用Dapper从数据库中查询数据以进行报告,我希望将这些测量字段转换为字典,以便我的课程看起来更接近于此。
class Measurement
{
DateTime MeasurementDate { get; set; }
decimal MeasurementValue { get; set; }
}
class Unit
{
int UnitId { get; set; }
IDictonary<string, Measurement> Measurements { get; set; }
}
我试图获得它,以便测量字典看起来像这样:
Measurement1, <1/1/1900,#####>
Measurement2, <1/1/1900,#####>
使用Dapper可以使用单个查询:
SELECT
*
FROM dbo.Units AS U
WHERE U.UnitId = @UnitId
告诉dapper,返回的单行中的这些字段是否需要映射到测量对象并添加到字典列表中?