2015-07-11 68 views
0

我剛開始使用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

通常,您最好使用唯一的ID鍵(不一定是GUID),然後使用索引來促進多值訪問並強制實施獨特的約束。 –

回答

0

從我的理解,你想對存儲一段時間的重量波動,那就沒有意義有兩個不同的權重,在相同的確切日期和時間。考慮到這一點,您可以在Weight類中將屬性[key]添加到UserID和Date屬性中。

使用此設計,當您從數據庫查詢權重時,可以通過Date屬性的日期和時間值對它們進行排序,最後一項將是最近的權重度量。