在实体框架中自己实现ICollection <t>可能吗?

时间:2015-12-16 10:47:24

标签: c# entity-framework collections

通常,EF中的POCO类看起来或多或少是这样的:

public int[] make2(int[] a, int[] b) {
      int[] answer = new int[2];
      for(int x = 0; x <= 1; x++){
          if(a[x] != null)
              answer[x] = a[x];
          else if (b[x != null]){
              answer[x] = b[x];
          }
      }

}

他们总是使用ICollection。

如果我想在ICollection上有更多方法,编写我自己的ICollection实现会不好?我在某处读到你不应该使用public partial class ThingEntity { public int Id { get; set; } public string Name { get; set; } public virtual ICollection<Thing> things{ get; set; } } 而不是List<T>,但是如果我有自己的ICollection实现怎么办?

2 个答案:

答案 0 :(得分:1)

您可以使用所需的集合。事实上,在我的所有模型中,我使用List<T>,这实际上是一种常见的模式。事实上,这是一个接口,最后,您需要该接口的具体实现。

答案 1 :(得分:0)

我试着编写一个实现的类,但是一小时后我意识到我可以为ICollection<T>编写扩展方法。这更容易,我不必在任何地方更换ICollections以获得我需要的方法。

这帮助我编写通用列表的扩展方法: How to create extension method on generic collection