从外键和DateTime创建复合键

时间:2015-07-11 14:20:22

标签: c# asp.net entity-framework orm

我刚开始使用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; }
}

1 个答案:

答案 0 :(得分:0)

根据我的理解,你试图将体重波动存储在一个时期内,在同一个确切的日期和时间有两个不同的权重是没有意义的。考虑到这一点,您只需将属性[key]添加到Weight类中的UserID和Date属性。

使用此设计,当您从数据库查询权重时,可以按Date属性的日期和时间值对它们进行排序,最后一项将是最近的权重度量。