2013-10-29 52 views
0

我有一個由Entity Framework(代碼優先)使用的類結構;EF5自動排序導航屬性

public class Product 
{ 
    public int Id { get; set; } 
    public string Name { get; set; } 

    public virtual ICollection<Image> Images { get; set; } 
} 

public class Image 
{ 
    public int Id { get; set; } 
    public int Order { get; set; } 
} 

Image的類具有Order字段,其​​可基本上處理排序。在我的應用程序的某個時候,我寫了一行,如;

BindImages(product.Images); 

我想是因爲當我要求product.Images,沒有我寫product.Images.OrderBy(x => x.Order)處處Images是由Order場自動排序。

有沒有人有任何建議?

回答

2

EF無法爲你做你想做的。但你可以做到這一點。您可以添加到您的類型的另一個屬性

public IEnumerable<Image> OrderedImages 
{ 
    get{return Images.OrderBy(x => x.Order); } 
} 

並使用它代替以前的集合。

+0

只需指出,您可能需要添加'[NotMapped]'屬性來停止EF抱怨更改。 –