1
我必须存储以下实体在数据库中:实体框架6复合键(日期时间+外键)
- 设备
- 测量点
- 测量值
,其中每个设备有一个或多个测量点。测量值表格将存储每10分钟每个测量点的值。这张表格将在几年后拥有数百万条记录,并且必须通过测量点和时间戳进行有效搜索。您如何设计EF6 Code-First?
我的第一种方法是:
public class Device
{
public int ID { get; set; }
public int DeviceNumber { get; set; }
...
public virtual ICollection<MeasuringPoint> MeasuringPoints { get; set; }
}
public class MeasuringPoint
{
public int ID { get; set; }
public int MeasuringPointNumber { get; set; }
...
// Foreign key
public int DeviceID { get; set; }
public virtual Device Device { get; set; }
}
public class MeasuredValue
{
//public int Id { get; set; } ????
public DateTime TimeStamp { get; set; }
// Foreign key
public int MeasuringPointID { get; set; }
public double Value;
public virtual MeasuringPoint MeasuringPoint { get; set; }
}
在测量值表中的所有值都必须在时间戳和MeasuringPointID的组合是唯一的。我应该为MeasuredTable定义什么主键?