我刚开始使用EF。用户具有0或更多权重,但对于同一日期最多只有一个权重。我该如何做到这一点?我想我应该创建一个复合键,但是我没有在Date属性之前找到任何适当的属性。 这是我的两个模型:
public class User
{
public int ID { get; set; }
public string Name { get; set; }
public virtual ICollection<Weight> Weights { get; set; }
}
public class Weight
{
[ForeignKey("User")]
[Column(Order=1)]
public int UserID { get; set; }
public DateTime Date { get; set; }
public float Value { get; set; }
}
答案 0 :(得分:0)
根据我的理解,你试图将体重波动存储在一个时期内,在同一个确切的日期和时间有两个不同的权重是没有意义的。考虑到这一点,您只需将属性[key]添加到Weight类中的UserID和Date属性。
使用此设计,当您从数据库查询权重时,可以按Date属性的日期和时间值对它们进行排序,最后一项将是最近的权重度量。