2015-12-16 33 views
0

在EF通常POCO類看起來或多或少是這樣的:在Entity Framework中可以自己實現ICollection <T>嗎?

public partial class ThingEntity 
{ 
    public int Id { get; set; } 
    public string Name { get; set; } 
    public virtual ICollection<Thing> things{ get; set; } 
} 

他們總是用ICollection的。

如果我想在ICollection上有更多的方法,那麼編寫我自己的ICollection實現會不好嗎?我在某處讀到,你不應該使用List<T>而不是ICollection<T>,但是如果我有自己的ICollection實現呢?

+0

這些類的點是根據你表的PK和FK關係的對象映射到數據庫表。只要你正確設計了你的數據庫,你就不需要任何改變。我可以看到你想要擴展的地方,但是你可以使用像Automapper這樣的工具爲你做這種事情。你有沒有一個地方/你爲什麼想要推出自己的例子。 – bilpor

+0

你有你想添加的額外方法的例子嗎? – Shanoor

回答

1

您可以使用所需的集合。事實上,在我所有的模型中,我都使用List<T>,這實際上是一種常見模式。事實上,這是一個接口,最後,您需要該接口的具體實現。

+0

感謝您的答覆。在嘗試用有用的方法編寫實現類一小時後,我意識到我可以爲ICollection編寫擴展方法lol –

+1

您也可以創建一個繼承自ICollection的新接口,併爲新接口編寫擴展方法,如果不不希望擴展方法出現在其他地方。 – JotaBe

+0

我不認爲那些會影響我在其他收藏:D –

0

我試着編寫一個實現的類,但是一小時後我意識到我可以爲ICollection<T>寫入擴展方法。這很容易,我不需要到處替換ICollections以獲得我需要的方法。

幫我寫擴展方法的泛型列表: How to create extension method on generic collection

相關問題