我使用ADO.NET EF與Code First方法。我正在使用:C#LINQ Distinct和ADO.NET EF
IList<SoleColor> soleColors = SoleColorService.All().ToList();
要獲取我的SoleColor
表中的所有記錄的列表。剩下的就是要區分這些結果,因爲有這一列 - SoleCode
,並且我只需要表中每組記錄中的一個記錄使用相同的SoleCode
。我經歷了很多關於這個話題的文章,但這是我最後一次嘗試找到我認爲必須存在的解決方案。顯然
IList<SoleColor> soleColors = SoleColorService.All().Distinct.ToList();
不會因爲各種原因,但仍然工作 - soleColors
持有的所有記錄/數據,我需要。我只需要多一步來過濾這些記錄/數據,以便每個SoleCode
只保留一個。我不知道用簡單的LINQ或其他方式是否可以實現。我認爲(作爲新手)是,它似乎是一個非常標準的工作,應該不需要實施或重寫現有的方法,正如我在各個地方看到的解決方案。
那麼 - 有沒有一個標準的方法來做到這一點。如果不是這樣,至少在我看來,這並不罕見,所以我想在這種情況下有一個共同的方法來處理。
PS
這裏是我的實體與此相關的代碼:
public class SoleColor : Entity
{
[Required]
public long SoleID { get; set; }
public virtual Sole Sole { get; set; }
//Some code..
[NotMapped]
public string SoleCode
{
get
{
if (Sole == null)
return string.Empty;
return Sole.Code;
}
}
//Some code...
這或自定義的''Distinct'' IEqualityComparer'。 :) –
2013-03-21 13:04:38
@ Trustme-I'maDoctor:因爲這是數據庫,我不願意使用該過載。它將因供應商而異。 – 2013-03-21 13:06:40
的確,我只是指出有*可能性*。我也會使用你列出的版本,特別是'只有一個屬性不同'。 – 2013-03-21 13:07:55